ssh自动输入密码登陆服务器/ssh免输入密码登陆/非交互ssh 密码验证

原文连接:http://hi.baidu.com/sdusoul/item/6a69b6953853e630326eeb21安全


因为常常须要登陆一些远程的服务器,每次都须要将密码重输一遍,以下:
#ssh 用户名@个人服务器的ip
用户名@个人服务器的ip's password: (这里须要手动输入密码后回车)
Linux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686
Last login: Sat Apr 10 14:34:05 2010 from localhost
登陆成功

我想偷懒,怎么办?下面我就给你们说一下偷懒的几种办法


方法1、经过密钥验证(经过方法一的密钥验证就安全了许多,配置也简单,并且同时ssh、scp、sftp等登陆都免去了输入密码的麻烦,推荐使用。下面的方法二密码匙明文传送,安全性不高。)

1.生成密匙对,我用的是rsa的密钥。使用命令 "ssh-keygen -t rsa"

#ssh-keygen -t rsa
//一路回车在当前用户的根目录下的.ssh目录生成id_rsa.pub公钥

2.将公钥放到服务器上(注意存放目录位置)

#scp ~/.ssh/id_rsa.pub 用户名@你的服务器的ip:~/.ssh/authorized_keys
//将本地生成的公钥拷贝到远程服务器的下并更名为authorized_keys

这样就大功告成了!经过ssh登陆、经过scp或者sftp传输文件啥的都不用再输入密码了!非常方便!


方法2、安装sshpass
# sudo apt-get install sshpass
安装完成后使用sshpass容许你用 -p 参数指定明文密码,而后直接登陆远程服务器。例如:

# sshpass -p '你的密码' ssh 用户名@服务器ip地址

用 '-p' 指定了密码后,还须要在后面跟上标准的 ssh 链接命令。
服务器