1 2009 from 192.168.0.3
Red Hat Enterprise Linux Server release 5.1 (Tikanga)
[root@c96m3h4ms01 ~]# uname
Linux
Now you can do some operation on this terminal
[root@c96m3h4ms01 ~]#
基于 SSH 交换 Key 自动化登录
SSH 证书简介
SSH 证书使用一对密钥 : 私钥(private key)和公钥 (public key).公钥(public key)对数据进行加密 只能用于加密,私钥(private key)只能对所匹配的公钥(public key)加密过的数据进行解密.私钥(private key)只保存你独有的一些秘密信息.SSH 客户端用其向 SSHD 服务器证明自已的身份.公钥是公开的,可以随便将其放入 SSHD 服务器上自已的帐号中 , 在认证时,进行私钥和公钥协商,如果匹配,那么身份就得以证明,认证就成功.
目前所有的 OpenSSH 版本都应该既能使用 RSA 密钥又能使用 DSA 密钥.RSA 密钥和 DSA 密钥的生成命令和使用方法相同,本文仅介绍 RSA.
如果采用 SSH 密钥认证的方式实现自动化登录,用户可以参考下面的章节.
生成密钥对
ssh-keygen 程序生成的 RSA 密钥的文件名默认为 id_rsa 和 id_rsa.pub,用户也可以将其更改为别的名称.下面”清单 3. 生成密钥对”的操作过程将采用系统的默认值.
清单3. 生成密钥对
[root@redhat ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ''/root/.ssh''.
Enter passphrase (empty for no passphrase): <--- 可以不输入密码
Enter same passphrase again: <--- 可以不输入密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4b:70:20:de:89:92:a9:fe:21:a4:9b:7c:6b:65:ae:e0 root@redhat
[root@redhat ~]# ls -al .ssh
total 20
drwx------ 2 root root 4096 May 10 02:51 .
drwxr-x--- 11 root root 4096 May 10 02:51 ..
-rw------- 1 root root 1675 May 10 02:51 id_rsa
-rw-r--r-- 1 root root 397 May 10 02:51 id_rsa.pub
如果 ssh 目录不存在,程序为自动创建本地 SSH 目录 ~/.ssh,并将所生成的密钥分成两个文件存储,私钥为 id_rsa,公钥为 id_rsa.pub.
配置自动化登录
在配置自动化登录的过程中,账户对应的公钥需要被添加到 SSHD 服务器端的配置文件.在 3.0 版本的 OPENSSH 中,用户需要修改的文件为 authorized_keys,早于 3.0 的版本则使用 authorized_keys2 文件.将在客户端生成的 id_rsa.pub 文件内容加入到 authorized_keys 或者 authorized_keys2 文件中即可完成配置工作.
为安全起见,要确保 $HOME/.ssh 目录的安全,只有所有者才有 权写入.如果远程用户的 SSH 配置文件的权限设置不当,服务器可能会拒绝进行认证.
下面是配置自动化登录的具体过程,其场景如下:
Openssh 为 OpenSSH_4.3p2SSH,将以 root 用户登录到 SSHD 服务器(192.168.0.4)上,因此公钥的内容将存放在 root/.ssh/authorized_keys.
清单4. 终端操作记录
[root@redhat ~]# scp /root/.ssh/id_rsa.pub root@192.168.0.4:/tmp
[root@redhat .ssh]# ssh 192.168.0.4
root@192.168.0.4''s password: ******
[root@server ~]# cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
如果用户在生成 rsa 和 id_rsa.pub 的时候没有输入密码,可以直接使用“ssh root@192.168.0.4”登录,而不用输入密码.
而如果用户在生成 rs |