RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现

来源:百度文库 编辑:神马文学网 时间:2024/04/28 03:28:03
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://itwork.blog.51cto.com/227050/131328
实验目的:
在Linux下通过SSH方式远程连接到其他Linux设备,并且不需要输入登录密码,通过非对称密钥进行验证。此方法为使用远程连接频繁的使用者有效的提高了工作的便捷性。
实验环境:
Linux主机一台,普通用户账号两个(此实验中使用:user和user2)
需要的Packages:sshd,sshd-server,sshd-client
实验要求:
user通过ssh连接本机并且使用user2账户直接登录(不需要输入user2的密码)
实验步骤:
注:增加用户user和user2的步骤在实验中省略
1. 生成本地用户user的公钥和私钥
使用user账户登录终端,执行指令 ssh-keygen -t dsa 出现以下输出
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): 直接回车,保留默认KEY存放路径
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): 直接回车,密码为空
Enter same passphrase again: 直接回车,密码为空
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
cd:fa:66:ca:d6:80:96:4e:7f:e4:8d:b3:14:d5:83:be user@linux.weitnt.cn
2. 查看生成的公钥及私钥位置和内容
执行指令 ls $HOME/.ssh  查看user用户家目录下的.ssh目录下应该有以下2个文件
id_dsa              用户的私钥
id_dsa.pub      用户的公钥
执行指令 cat $HOME/.ssh/id_dsa.pub 查看id_dsa.pub的内容,类似下面的样子
ssh-dss
AAAAB3NzaC1kc3MAAACBAKArpnyNrA2ZZzF+EBJJUv08gslUvsuF2xKAZufgeguS/5sKUD5DyXLDVYuc80f6C6toJNM4zPB/oUM8X8QrUy8nq3/P2xSzybpEfKVoEY1xb0LB+uuTP0Nxlpnv7a3auLzHYabbBBKTheTcudXxMPveiR+lSM7470xnu2B7c8xPAAAAFQCvUdIZmjrDh19xB6H9QlJl8PtBqQAAAIEAkrl3mTOgwEQyXUo9J3G2x0c3mdxJv8Itto2aVNzaTLteXSKaLPBFFGqr/ZzTmH71huZAYMloUvO8Q3Sb/QsU5cjNHthHbAjq7QUunL/+hYVskRPE+XNioLBLm/YpFfPeyfSJzNLVL7Q0E8zTMWvL96GPhoNQEOtzdOqqygnvdVwAAACAZkBTUe9w0Iy9L/vKEzE9Es5kLdTVXAwQtrjD8SWl1wKJMK6ruoahjkoC8Yw7eQR/guGNAxD1u63N+vHbT6MtYvoTNcdwVvCfx1f6VxqhgkcQfFC23SfMrny4Rt74MqJnYwwxRdq7lfY2GY3IcI2e1YTpugzcjk7v50Nt7jcsM+Q= user@linux.weitnt.cn
3. 将本地用户user的公钥传给远程用户user2
通过Email将user刚刚生成的公钥传递给user2,方法如下
mail -s "user's key" user2@linux.weitnt.cn < /home/user/.ssh/id_dsa.pub
4. user2获得user的公钥
使用user2账户登录,使用 mail 指令收取邮件,我们会看到如下内容
[user2@linux ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/user2": 1 message 1 new
>N  1 user@linux.weitnt.cn  Tue Feb 17 14:04  14/1058  "user's key"
输入n回车显示邮件内容,然后输入 w user.key 将邮件内容保存为user.key文件
输入q或者x退出mail界面
5. user2对获得的公钥的设置
在user2家目录出现刚刚保存的名为user.key的文件
使用指令 mkdir .ssh ; chmod 700 .ssh 建立.ssh目录并将其权限设置为700
使用指令 cp user.key .ssh/authorized_keys 将user.key文件拷贝到.ssh目录下并且重命名为authorized_keys文件
使用指令  chmod 600 authorized_keys  将文件权限设置文600
注:以上两步设置文件权限是从key的安全方面考虑的,不执行此步骤不会影响实验要求的完成。
6. 实验测试
在用户user界面下输入指令 ssh user2@linux.weitnt.cn 使用user2用户登录
登录时可能会出现如下信息,输入yes继续,就会登录到user2用户环境
[user@linux .ssh]$ ssh user2@linux.weitnt.cn
The authenticity of host 'linux.weitnt.cn (192.168.10.252)' can't be established.
RSA key fingerprint is ee:fa:6d:4b:bc:c3:d8:f1:0e:fc:cd:34:b6:b4:7f:e8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'linux.weitnt.cn,192.168.10.252' (RSA) to the list of known hosts.
[user2@linux ~]$ exit          输入exit指令,退出user2用户界面
再次在用户user环境下输入指令 ssh user2@linux.weitnt.cn
如果可以直接登录到user2的用户环境则表示实验成功。
显示的信息如下
[user@linux ~]$ ssh user2@linux.weitnt.cn
Last login: Tue Feb 17 14:20:36 2009 from linux.weitnt.cn
[user2@linux ~]$
实验总结:
user传递公钥时本文的方法是使用mail,当然可以使用其他的很多方法来达到这个目的。
user2在获得user的公钥后一定要将其保存在正确位置并且命名正确,其绝对路径为/home/user2/.ssh/authorized_keys($HOME/.ssh/authorized_keys)。
文中使用的linux.weitnt.cn域名可以使用本机的IP地址代替,或者也可查看/etc/hosts文件的内容做相应的调整。
本实验是在一台设备中增加两个用户的方式来完成的,但在实际工作环境中这两个用户可能处在不同设备中,这并不影响本实验的真实性和准确性,以上实验的全部内容在实际工作环境中的多设备多用户情况下是完全可行的。
RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现--结束
本文出自 “IT勤杂工” 博客,请务必保留此出处http://itwork.blog.51cto.com/227050/131328