使用Unix密钥启用自动登录

系统 其他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字符串长度进行验证
责任编辑:小霞
相关推荐

2010-07-22 10:23:19

2016-10-31 08:35:20

LinuxUnix

2021-02-20 09:03:47

SSH密钥指纹

2009-05-19 08:53:05

OpenIDFacebookGmail

2023-09-13 22:54:06

2010-05-06 09:51:15

SCO Unix主机

2010-05-04 14:54:32

Unix网关

2010-05-05 16:16:22

Unix自动化

2010-07-22 10:35:34

自动登录telnet

2021-07-17 15:38:45

FirefoxWindows 10微软

2010-06-28 14:56:27

ftp命令

2013-05-29 14:27:40

2010-04-30 17:03:44

Unix文件系统

2010-03-16 09:01:23

Windows 7任务栏重置

2010-04-08 13:06:02

Unix操作系统

2010-05-11 10:29:06

Unix awk

2010-04-29 17:51:40

Unix工具

2010-08-02 08:49:25

2010-04-26 13:28:05

Unix Shell

2023-07-02 14:05:13

点赞
收藏

51CTO技术栈公众号