配置自动登录的OpenSSH
在不使用SecureCRT或者PuTTY的时候,用ssh登录远程服务器总是要输入密码,挺麻烦的。而且做系统管理,总是需要与自动化的命令行打交道,把密码明码写在脚本里实在不是一个合格的系统管理员做的事情。这儿有个解决办法:
1、在本机上创建密钥对:
$ cd ~/.ssh
$ ssh-keygen -t dsa
根据提示输入密码,此密码与远程ssh密码无关。
2、将公钥文件复制到远程服务器上:
$ scp ~/.ssh/id_dsa.pub user@remote.host:pubkey.txt
$ ssh user@remote.host
$ mkdir ~/.ssh
$ chmod 700 .ssh
$ cat pubkey.txt >> ~/.ssh/authorized_keys
$ rm ~/pubkey.txt
$ chmod 600 ~/.ssh/*
$ exit
3、测试远程服务器上的公钥:
$ ssh user@remote.host
系统应该在这里提示要输入私钥密码,就是在ssh-keygen时创建的。
$ exit
4、启动ssh-agent代理:
$ eval `ssh-agent`
5、将私钥加到ssh-agent代理的缓存中去:
$ ssh-add
又要输一遍私钥密码。
6、测试一下:
$ ssh user@remote.host
$ exit
7、因为自动登录的实现是由ssh-agent保存了登录信息实现的,因而在使用之前需要启动ssh-agent。自动启动ssh-agent代理:下载sssha脚本,并放到~/.ssh/目录下,并在~/.bashrc文件中加入:
# setup ssh-agent, if appropriate
if [ -f "$HOME/.ssh/sssha" ]; then
source $HOME/.ssh/sssha
fi
