SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额 外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的"通道"。SSH客户端与服务器端通讯时,用户名 及口令均进行了加密,有效防止了对口令的窃听。
最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免 费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。
让Ubuntu启动SSH服务这个不用多说了,还是apt-get install***:
sudo apt-get install openssh-server启动ssh服务 /etc/init.d/ssh start,
如果看到ps -e |grep ssh 结果里有sshd那说明ssh-server已经启动了。
ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服 务:
sudo /etc/init.d/ssh restart
ssh连接:ssh [email protected]
使用putty来连接linuxputty有很多种连接方式可选,当然有我们要的SSH了Putty中文版:下 载
不使用私钥的SSH还是有一定风险的。现在我们尝试在ubuntu服务器上生成私钥和公钥
$ssh-keygen -t rsa后面会提示你私钥的文件名,放在哪,这些问题,选择默认就行了,中途会让你输入密码,这个你可得记住。这样你的用户目录下会多出一个隐藏的.ssh文件夹。可以使用ls -A 来查看。里面还有两文件,一个是id_rsa(私钥),还有一个是id_rsa.pub(公钥)
这个私钥和公钥到底是什么概念?
简单说,公钥就是你的银行帐户,这个可能别人也知道,但只有手上有信用卡或是存折才能有资格去试帐户密码。所以这个信用卡和存折就是你的私钥。所以 这个私钥得保存好。
也就是说,那个id_rsa文件你得保存好,可以弄到U盘上,随身带着。而id_rsa.pub得改成系统默认识别的 authorized_keys并保存在.ssh文件夹下
现在服务器已经可以有两种方式的登陆了,一种就是直接用户密码识别登陆,还有一个是RSA登陆。当然,后面那个比较安全,那么我们就把服务器还有一 种登陆方式给去掉。
找到etc/ssh/sshd.conf这个文件,它是负责服务器端上的设置的:
#最好把这个选项设置成“PermitRootLogin#without-password”,这样“root”用户就不能从没有密匙的计算机上登录。把这个选项设置成“no”
#将禁止“root”用户登录,只能用“su”命令从普通用户转成“root”。
PermitRootLogin without-password
#把这个选项设置为“no”只允许用户用基于密匙的方式登录。
PasswordAuthentication no 利用putty 使用 RSA 登陆
辛辛苦苦弄好的钥匙,那么我们就用起来吧。这个操作是在windows平台上的。
首先打开解压putty.tgz文件。先找到“puttygen.exe”这个文件,我们要让它帮我们做个通行证。
选择“载入”,也就是载入已保存的密钥文件(私要文件),弹出的对话框里把“文件类型”换成“所有文件”然后选中我们从ubuntu服务器上生成的 id_rsa文件。
接着,它会提示你输入密码,这不是你linux用户密码,而是前面生成密钥时候的密码
完成之后就会提示你保存好私钥文件,按下“保存私钥”起好名字,注意(格式为*.ppk)因为putty只识别自己做的钥匙。。。如果你只是用 putty远程登陆的话,那么另外个id_rsa文件可以不要了,保管好*.ppk就行接下来就是用这把钥匙登陆了,只要在登陆前完成这步: