欢迎访问生活随笔!

生活随笔

您现在的位置是:首页 > 形式科学 > 操作系统 > 其他OS

其他OS

使用Unix密钥启用自动登录

发布时间:2022-06-22其他OS 系统管理员
您需要使用 ssh-keygen 来指定Unix密钥加密的类型,创建公钥或私钥。每当需要使用公钥登录到远程主机时,您可以结合使用个人Unix密钥脚本和远程主机上该用户接受的密钥列表。

今天,我们来继续学习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字符串长度进行验证