旌旗博客

2007-03-26

配置自动登录的OpenSSH

Filed under: I.T. — 标签:, — rocky @ 22:08

      在不使用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

 

本文参考http://www.mtu.net/~engstrom/ssh-agent.php

Powered by WordPress