使用Unix密钥启用自动登录
创始人
2024-06-29 10:11:11
0次

今天,我们来继续学习Unix密钥的知识。当您使用 ssh、sftp 或 scp 登录到远程系统后,您仍需要使用密码才能完成登录过程。通过创建公钥或私钥,将密钥的公共部分附加到~/.ssh/authorized_keys 文件,并与远程站点交换了有效Unix密钥后,您可以省去提供密码的要求并允许自动登录。

要创建公钥或私钥,您需要使用 ssh-keygen 来指定Unix密钥加密的类型。在演示中使用了 rsa 密钥类型,但是其他密钥类型也有效。要创建密钥,请参见清单 11。

清单 11. 创建Unix密钥
 

  1. $ ssh-keygen -t rsa  
  2. Generating public/private rsa key pair.  
  3. Enter file in which to save the key (/root/.ssh/id_rsa): 


 
您应输入保存Unix密钥(公共和私有组件)的文件的位置。使用缺省值(在主目录中的 .ssh 目录中)一般就可以了(请参见清单 12)。

清单 12. 提示输入密码
 

  1. Created directory '/root/.ssh'.  
  2. Enter passphrase (empty for no passphrase): 

 
如果您在此阶段输入了密码,则会创建安全密钥文件,但是在每次使用Unix密钥时,还必须输入密码。按 Return 意味着不需要任何密码(请参见清单13)。

清单 13. 通过按 Return 键跳过密码需求
 

  1. Enter same passphrase again:   
  2. Your identification has been saved in /root/.ssh/id_rsa.  
  3. Your public key has been saved in /root/.ssh/id_rsa.pub.  
  4. The key fingerprint is:  
  5. 98:da:8d:48:a8:09:44:b1:b3:62:51:2d:a9:6b:61:ba root@remotehost  

 
现在已创建了公钥 (id_rsa.pub) 和对应的私钥 (id_rsa)。

要启用自动登录,您必须将公钥的内容复制到远程主机上 ~/.ssh 目录中的 authorized_keys 文件中。您可以使用 SSH 自动完成此操作(请参见清单 14)。

清单 14. 启用自动登录
$ cat ./.ssh/id_rsa.pub | ssh mc@remotehost 'cat >> .ssh/authorized_keys';
 
还有,如果在多个主机中经常执行此操作,则可以使用小脚本或 Shell 函数来执行所有必需步骤,如清单 15 所示。

清单 15. 使用 Shell 脚本启用自动登录
 

  1. OLDDIR='pwd';  
  2. if [ -z "$1" ]; then  
  3. echo Need user@host info;  
  4. exit;  
  5. fi;  
  6. cd $HOME;  
  7. if [ -e "./.ssh/id_rsa.pub" ]; then  
  8. cat ./.ssh/id_rsa.pub | ssh $1 'cat >> .ssh/authorized_keys';  
  9. else  
  10. ssh-keygen -t rsa;  
  11. cat ./.ssh/id_rsa.pub | ssh $1 'cat >> .ssh/authorized_keys';  
  12. fi;  
  13. cd $OLDDIR  

 
您可以使用 setremotekey 脚本复制现有Unix密钥,如果密钥不存在,可在复制之前创建一个: $ setremotekey mc@remotehost
 
现在,每当需要使用公钥登录到远程主机时,您可以结合使用个人Unix密钥脚本和远程主机上该用户接受的密钥列表。

OpenSSH 是一个重要工具,它可以保护计算机之间的通信和信息传输的安全。它不仅是常规工具(如 Telnet、FTP 和 RCP)的安全替代方法,而且还可以充当其他服务(如 Subversion、X Windows System 和 rsync)的传输协议。

本文向您介绍了启动和运行 OpenSSH 所需的基本步骤,如何最有效地使用 OpenSSH 提供的主要工具,以及如何使用Unix密钥交换工具来简化登录和连接性问题。

【编辑推荐】

  1. 安装Unix OpenSSH的知识
  2. 修改Unix文件的扩展名
  3. Excel中导入Unix格式时间戳小技巧
  4. 学会截取Unix字符串的方法
  5. Unix字符串长度进行验证

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...