用SSH实现无密码自动登录

用SSH实现无密码自动登陆

  •         SSH广泛用于脚本自动化,它使得我们可以在远程主机上执行命令并读取输出。SSH通常使用用户名和密码进行认证,在其执行过程中会提示输入密码。但是在自动化脚本中要求用户输入密码就显得不实际了。因此需要将登录过程自动化。SSH包含了一个内建特性,可以用SSH密钥实现自动登录。
1. 预备知识:

        SSH采用非对称加密技术,认证密钥包含两部分:一个公钥和一个私钥。我们可以通过ssh-keygen 命令创建认证密钥。想要实现自动化认证,公钥必须放置在服务器中(将其加入文件~/.ssh/authorized_keys),与公钥对应的私钥应该放入登录客户机的~/.ssh 目录中。另一些与SSH相关的配置信息(例如,arthorized_keys文件的路径与名称)可以通过修改文件/etc/ssh/sshd_config进行配置。

2. 实战演练:

        设置SSH自动化认证需要两步:
                1. 创建SSH密钥,这里用于登录远程主机;
                2. 将生成的公钥传给远程主机,并将其加入文件~/.ssh/authorized_keys 中。
        输入命令ssh-keygen 创建SSH密钥,并指定加密算法类型为RSA:

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/HELEN/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/HELEN/.ssh/id_rsa.
Your public key has been saved in /home/HELEN/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NKlL1KFVD867uAwLIAd01ujibgrwx18Q45FrFlOCV4Q HELEN@Lucifer
The key's randomart image is:
+---[RSA 2048]----+
| . oo..+*.o      |
|. o...EB = o     |
|. .  .X = o .    |
| o . o X . .     |
|+ +   O S .      |
|.= o + o . .     |
|o . + o o .      |
|.o . o = .       |
|+     o o        |
+----[SHA256]-----+
  • 你需要输入一个口令来生成一对公钥和私钥。如果不输入的话,也可以生成密钥,但是这样做可不安全。我们可以编写监控脚本,利用自动登陆来登入多台主机。对于这种情况,在运行ssh-keygen 命令时,不要填入口令,这样就能够避免在脚本运行时向你索要口令了。
  • 现在~/.ssh/id_rsa.pub~/.ssh/id_rsa 已经生成了。id_rsa.pub是生成的公钥i_rsa是生成的私钥。公钥必须添加到远程服务器~/.ssh/authorized_keys 文件中,这台服务器也正是我们想从当前主机自动登入的那台服务器。
  • 多数Linux发布版中有一个叫做 ssh-copy-di 的工具,它可以自动将公钥加入远程服务器的authorized_keys文件中。用法如下:ssh-copy-id USER@REMOTE_HOST
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值