From: http://www.linuxidc.com/Linux/2011-02/31921.htm
由于经常需要登录一些远程的服务器,每次都需要将密码重输一遍,如下:
#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
登录成功
我想偷懒,怎么办?下面我就给大家说一下偷懒的几种办法
方法一、通过密钥验证(通过方法一的密钥验证就安全了许多,配置也简单,而且同时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
(如果远程服务器上已有这个文件,怎么办,think about it)
这样就大功告成了!通过ssh登录、通过scp或者sftp传输文件啥的都不用再输入密码了!很是方便!
方法二、安装sshpass
# sudo apt-get install sshpass
安装完成后使用sshpass允许你用 -p 参数指定明文密码,然后直接登录远程服务器。例如:
# sshpass -p '你的密码' ssh 用户名@服务器ip地址
用 '-p' 指定了密码后,还需要在后面跟上标准的 ssh 连接命令。
====================================================================
mac上无法使用brew install来安装sshpass,但是可以手工下载并安装
下载地址:http://ncu.dl.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
安装过程:
./configure
make
make install
通过ssh登录主机: sshpass -p 123456 ssh root@192.168.1.88