Ubuntu中SSH命令详解

SSH(SecureShell)是目前比较可靠的为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。下面介绍的是Ubuntu中SSH的概念和使用的方法,具体内容如下所述。

什么是SSH

SSH的英文全称是SecureSHell,SSH协议族由IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的”通道”。

最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。

让Ubuntu启动SSH服务

这个不用多说了,还是apt-getinstall大法:

  1. #sudoapt-getinstallssh

不使用私钥的SSH还是有一定风险的。现在我们尝试在ubuntu服务器上生成私钥和公钥

  1. #ssh-keygen

后面会提示你私钥的文件名,放在哪,这些问题,选择默认就行了,中途会让你输入密码,这个你可得记住。这样你的用户目录下会多出一个隐藏的.ssh文件夹。可以使用ls-A来查看。里面还有两文件,一个是id_rsa(私钥),还有一个是id_rsa.pub(公钥)

这个私钥和公钥到底是什么概念?

简单说,公钥就是你的银行帐户,这个可能别人也知道,但只有手上有信用卡或是存折才能有资格去试帐户密码。所以这个信用卡和存折就是你的私钥。所以这个私钥得保存好。

也就是说,那个id_rsa文件你得保存好,可以弄到U盘上,随身带着。而id_rsa.pub得改成系统默认识别的authorized_keys并保存在.ssh文件夹下

现在服务器已经可以有两种方式的登陆了,一种就是直接用户密码识别登陆,还有一个是RSA登陆。当然,后面那个比较安全,那么我们就把服务器还有一种登陆方式给去掉。

找到etc/ssh/sshd.conf这个文件,它是负责服务器端上的设置的:

#最好把这个选项设置成“PermitRootLoginwithout-password”,这样“root”用户就不能从没有密匙的计算机上登录。把这个选项设置成“no”

#将禁止“root”用户登录,只能用“su”命令从普通用户转成“root”。

  1. PermitRootLoginwithout-password

#把这个选项设置为“no”只允许用户用基于密匙的方式登录。

  1. PasswordAuthenticationno

利用putty使用RSA登陆

辛辛苦苦弄好的钥匙,那么我们就用起来吧。这个操作是在windows平台上的。

首先打开解压putty.tgz文件。先找到“puttygen.exe”这个文件,我们要让它帮我们做个通行证。

选择“载入”,也就是载入已保存的密钥文件(私要文件),弹出的对话框里把“文件类型”换成“所有文件”然后选中我们从ubuntu服务器上生成的id_rsa文件。

接着,它会提示你输入密码,这不是你linux用户密码,而是前面生成密钥时候的密码

完成之后就会提示你保存好私钥文件,按下“保存私钥”起好名字,注意(格式为*.ppk)因为putty只识别自己做的钥匙。。。如果你只是用putty远程登陆的话,那么另外个id_rsa文件可以不要了,保管好*.ppk就行

下来就是用这把钥匙登陆了,只要在登陆前完成这步:

好了。基本上SSH连接远端linux的任务就完成了。

SSH远程登入Ubuntu机

  1. [email protected]’sip(eg.192.168.0.1)

将文件/文件夹从远程Ubuntu机拷至本地(scp)

  1. [email protected]:/home/username/remotefile.txt.

将文件/文件夹从本地拷至远程Ubuntu机(scp)

  1. [email protected]:/home/username/

将文件/文件夹从远程Ubuntu机拷至本地(rsync)

  1. rsync-v-u-a–delete–rsh=ssh–[email protected]:/home/username/remotefile.txt.

将文件/文件夹从本地拷至远程Ubuntu机(rsync)

  1. rsync-v-u-a–delete–rsh=ssh–[email protected]:/home/username/

在Windows机上用SSH远程登录Ubuntu机

  1. [email protected]

支持SSH图形界面。也就是说,gedit打开和另存都是在服务器端操作的。nautilus打开服务器端的文件管理器。这下就比只用命令行方便多了。不知道windows下的putty支持不

  1. [email protected]

直接在服务器端执行ls返回结果到客户端

下载PuTTY

如何在Windows机上拷贝文件/文件夹从/到远程Ubuntu机

下载FileZilla

如何限制通过SSH远程连接的用户帐号

如,假如你启用了SSH服务,那么任何有有效帐号的用户都可以远程连接。这可能会导致一些安全问题,由于有一些远程密码破解工具可以尝试常见的用户名/密码

备份SSH服务的配置文件

  1. sudocp/etc/ssh/sshd_config/etc/ssh/sshd_config.ORIGINAL

编辑配置文件

  1. #sudogedit/etc/ssh/sshd_config

*将参数PermitRootLogin由yes更改为no。超级用户不能直接通过远程联机。

*添加参数AllowUsers设定远程连接的用户名(用空格来分割)。

*您也可以使用DenyUsersforfine-grainedselectionofusers.

  1. *Ifyouenabletheopensshserverandyouhavenointentionfornowtoenableremoteconnections,youmayaddAllowUsersnosuchuserheretodisableanyoneconnecting.

SSH命令

ssh命令可以用来在远程机器上不经shell提示登录而执行命令。它的语法格式是:sshhostnamecommand。譬如,如果你想在远程主机penguin.example.net上执行ls/usr/share/doc命令,在shell提示下键入下面的命令:

  1. sshpenguin.example.netls/usr/share/doc

使用scp命令

scp命令可以用来通过安全、加密的连接在机器间传输文件。它与rcp相似。

把本地文件传输给远程系统的一般语法是:

  1. [email protected]:/newfilename

localfile指定源文件,[email protected]:/newfilename指定目标文件。

要把本地文件shadowman传送到你在penguin.example.net上的账号内,在shell提示下键入(把username替换成你的用户名):

  1. [email protected]:/home/username

这会把本地文件shadowman传输给penguin.example.net上的/home/username/shadowman文件。

把远程文件传输给本地系统的一般语法是:

  1. [email protected]:/remotefile/newlocalfile

remotefile指定源文件,newlocalfile指定目标文件。

源文件可以由多个文件组成。譬如,要把目录/downloads的内容传输到远程机器penguin.example.net上现存的uploads目录,在shell提示下键入下列命令:

  1. scp/downloads/*[email protected]:/uploads/

使用sftp命令

sftp工具可以用来打开一次安全互动的FTP会话。它与ftp相似,只不过,它使用安全、加密的连接。它的一般语法是:[email protected]。一旦通过验证,你可以使用一组和使用FTP相似的命令。请参阅sftp的说明书页(man)来获取这些命令的列表。要阅读说明书页,在shell提示下执行mansftp命令。sftp工具只在OpenSSH版本2.5.0p1以上才有。

转载:http://blog.csdn.net/candycat1992/article/details/8043978

时间: 2024-10-10 23:57:39

Ubuntu中SSH命令详解的相关文章

linux中ls命令详解

s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i 节点的修改时间,并以此排序.-d 将目录象文件一样显示,而不是显示其下的文件.-e 输出时间的全部信息,而不是输出简略信息.-f -U 对输出的文件不排序.-g 无用.-i 输出文件的 i 节点的索引信息.-k 以 k 字节的形式表示文件的大小.-l 列出文件的详细信息.-m 横向输出文件名

MySQL中EXPLAIN命令详解

explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: explain select surname,first_name form a,b where a.id=b.id EXPLAIN列的解释: table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何种类型.从最好到最差的连接类型为const.eq_reg.ref.range.in

oracle中imp命令详解 .

oracle中imp命令详解 Oracle的导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文件.imp使用的基本格式:imp[username[/password[@service]]],以下例举imp常用用法. 1. 获取帮助 imp help=y 2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一个或一组指定用户所属的全部表.索引和其他对象

Linux中rm命令详解

linux下rm命令使用详解---linux删除文件或目录命令 用户可以用rm命令删除不需要的文件.该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是断开了链接,原文件保持不变. rm命令的一般形式为:rm [选项]... 目录... 删除指定的<文件>(即解除链接). -d      --directory    删除可能仍有数据的目录 (只限超级用户) -f      --force          略过不存在的文件,

【转】ubuntu中的Wine详解

原文网址:http://blog.csdn.net/iwtwiioi/article/details/10530561 什么是wine?(转自百度百科,具体看百科) wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多大型Windows系统下的软件.另外英语单词wine是葡萄酒的意思. wine下载地址(我是在软件中心下的,版本是1.5):http://www.winehq.org/downlo

linux中find命令详解

http://blog.csdn.net/pipisorry/article/details/39831419 问题: linux中find命令查找时不包含某些目录 find 命令忽略某个或多个子目录的方法 在linux中用find 进行查找的时候,有时候需要忽略某些目录不查找,可以使用 -prune 参数来进行过滤,要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用. eg: [email protected]:/tmp1#find ./ -type f    #/tmp1目录下所

linux中top命令详解

在linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem:  8247956k total,8232004k used,15952k free,205240k buffers Swap: 8191992k total,48k used,8191944k free,7156092k cached   top命令是Linux下常用的性能分析工具,能够实时显示系

ssh命令详解3

SSH 的详细使用方法如下: ssh [-l login_name] [hostname | [email protected]] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostnam

ssh命令详解

SSH 的详细使用方法如下: ssh [-l login_name] [hostname | [email protected]] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostnam