1. 配置sshd允许public key登录
# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# /etc/init.d/sshd restart # for Linux
# /etc/rc.d/sshd restart # for FreeBSD
2. 生成密钥对
方法一(由服务器生成密钥对)
在服务器中执行:
# ssh-keygen -t dsa
可得到两个文件,id_dsa是私钥,id_dsa.pub是公钥:
~/.ssh/id_dsa
~/.ssh/id_dsa.pub
复制这两个文件到本地,保存到 SecureCRT 的安装目录的 sshkeys 子目录中,或者其它自己认为合适的目录。
方法二(由SecureCRT生成密钥对)
(1) 在SecureCRT中打开“会话选项(Session Options)”;
(2) 在“分类(Category)”中选择SSH2;
(3) 在右边的“身份验证(Authentication)”中选择“公钥(Publickey)”;
(4) 然后点击旁边的“属性(Propertites)”按钮;
(5) 选择“使用会话公钥设置(Use session public key setting)”;
(6) 在“使用身份文件(Use identify file)”下面,选择“创建身份文件(Create Identity
File...)”;
(7) 点击“下一步”,选择“DSA”,生成“Identity”和“Identity.pub”两个文件;
(8) 复制Identity.pub文件到服务器,放到home目录的.ssh子目录下,并执行命令:
# ssh-keygen -X -f Identity.pub >
authorized_keys
3. 配置SecureCRT使用公钥认证
(1) 在SecureCRT中,打开会话选项;
(2) 在“分类(Category)”中选择 SSH2;
(3) 在右边的“身份验证(Authentication)”中选择“公钥(PublicKey)”;
(4) 点击旁边的“属性(Properites)”,选择“使用会话公钥设置(Use session public key
setting)”;
(5) 在“使用身份文件(Use identify file)”的输入框中,选择之前生成的 id_dsa 或者
Identity;
(6) 注意:id_dsa 和 id_dsa.pub,或者 Identity 和 Identity.pub 要保存在一起,并符合
keyname 和 keyname.pub 的对应格式);
4. 测试
重新用 SecureCRT 连接一下试试,能够直接登录就好了!
5. 取消sshd密码认证方式
# vi /etc/ssh/sshd_config
PasswordAuthentication no
# /etc/rc.d/sshd restart
注意一般连接两个Session,一个用于修改并验证是否成功,另一个备用,以便修改失误时用以恢复。