首页 > 其他分享 >自动化SSH登陆远程主机

自动化SSH登陆远程主机

时间:2022-12-05 13:01:15浏览次数:40  
标签:主机 RSA 公用 认证 密钥 remotebox 远程 ssh SSH


有时,要在脚本中自动化SSH登陆远程主机,不输入密码,可以用公钥私匙的方法,方法如下。

比如A主机中要SSH直接登陆B主机,在A主机中:

1)ssh-keygen -t rsa
连续输入三次空白,其中私钥也不用密码了,
2)会默认在/home/username/.ssh下生成公钥id_rsa.pub.

3)把id_rsa.pub放到B计算机对应的/home/username/.ssh目录下

4)在B计算机中
umask 077
cat id_rsa.pub >> authorized_keys
(将id_rsa.pub的内容追加到 authorized_keys 中)


5)这样在A中就可以远程不输入密码登陆B了

附录,这里说明下,选了网上的说明:
在上面的第三步中,如果产生了A主机的私匙时输出了密码,ssh虽然无须再输入用户密码,但仍然要输入私钥的passphrase,这和输入ssh密码一样麻烦,幸好托ibm的福,大牛Daniel Robbins为我们介绍了使用ssh-agent和keychain免去输入密码之烦的方法,

(http://www.ibm.com/developerworks/cn/linux/security/openssh/part2/index.html)
不过应该不适用于我们这样经常需要开关机的情况,所以,只好回到第一步,生成一对没有passphrase的密钥来用,虽然安全性下降了些,倒是非常方便。

安全建议
如果条件允许,使用带有passphrase的密钥,配合ssh-agent和keychain使用。
如果需要从不同的计算机登录服务器,最好使用不一样的密钥对。
记得定期更换密钥对,切记。


6)登陆原理:
是,与 ssh 安全密码认证不同的是,RSA 认证需要一些初始配置。我们只需要执行这些初始配置步骤一次。之后, localbox 和 remotebox 之间的 RSA 认证就毫不费力了。要设置 RSA 认证,我们首先得生成一对密钥,一把专用密钥和一把公用密钥。这两把密钥有一些非常有趣的性质。公用密钥用于对消息进行加密,只有拥有专用密钥的人才能对 该消息进行解密。公用密钥只能用于 加密,而专用密钥只能用于对由匹配的公用密钥编码的消息进行 解密。RSA(和 DSA)认证协议利用密钥对的这些特殊性质进行安全认证,并且不需要在网上传输任何保密的信息。

要应用 RSA 或者 DSA 认证,我们要执行一步一次性的配置步骤。我们把 公用密钥拷贝到 remotebox。公用密钥之所以被称作是“公用的”有一个原因。因为它只能用于对那些给我们的消息进行加密,所以我们不需要太担心它会落入其它人手 中。一旦我们的公用密钥已经被拷贝到 remotebox并且为了 remotebox 的 sshd 能够定位它而把它放在一个专门的文件(~/.ssh/authorized_keys)里,我们就为使用 RSA 认证登录到 remotebox上做好了准备。

要用 RSA 登录的时候,我们只要在 localbox 的控制台键入 ssh USERNAME@remotebox ,就象我们常做的一样。可这一次, ssh 告诉 remotebox 的 sshd 它想使用 RSA 认证协议。接下来发生的事情非常有趣。 Remotebox 的 sshd 会生成一个随机数,并用我们先前拷贝过去的公用密钥对这个随机数进行加密。然后, sshd 把加密了的随机数发回给正在 localbox 上运行的 ssh 。接下来,轮到我们的 ssh 用 专用密钥对这个随机数进行解密后,再把它发回给 remotebox,实际上等于在说:“瞧,我确实有匹配的专用密钥;我能成功的对您的消息进行解密!”最后, sshd 得出结论,既然我们持有匹配的专用密钥,就应当允许我们登录。因此,我们有匹配的专用密钥这一事实授权我们访问 remotebox。

标签:主机,RSA,公用,认证,密钥,remotebox,远程,ssh,SSH
From: https://blog.51cto.com/u_14230175/5911936

相关文章

  • 主机--SAN---LUN
    【手绘雄文】集群文件系统架构演变终极深度梳理图解-51CTO.COM【大话存储II】学习笔记(15章),文件级集群系统-dy2903-博客园(cnblogs.com)【大话存储II】学习笔记(15章),......
  • 【问题记录】关于xrdp远程桌面安装失败(本质是软件源版本)
    我自己机器的显存不足以支持我运行一些大规模的模型训练,所以要用组里的服务器远程训练。但有时候一些模型,为了看效果(比如图片相关的)(效果不行得停掉改参数吧),用了visdom显示......
  • Feign远程调用
    先来看我们以前利用RestTemplate发起远程调用的代码:存在下面的问题:•代码可读性差,编程体验不统一•参数复杂URL难以维护Feign是一个声明式的http客户端,官方地址:https:......
  • 远程桌面 ubuntu20使用vnc访问
     1ubuntu20开发端口安装端口管理软件sudoapt-getinstallufw关闭所有端口(如果你知道vnc都用了哪些端口,直接开发对应的,尤其是局域网端口)sudoufwdisable查看防......
  • 常用命令_主机状态监控
    top =p#只显示某个进程的信息 -d#设置刷新时间 -c#显示产生进程的完整命令 -n#指定刷新次数 -b#以非交互全屏模式运行,top-b-n3>/tmp/test.log -i#......
  • 服务拆分和远程调用
    任何分布式架构都离不开服务的拆分,微服务也是一样。1.服务拆分原则这里我总结了微服务拆分时的几个原则:不同微服务,不要重复开发相同业务微服务数据独立,不要访问其......
  • SSH&FTP
    1.SSH1.1使用SSH服务安装SSH相关包sudoapt-getinstallopenssh-clientsudoapt-getinstallopenssh-server#在根目录下启动SSH服务sudo/etc/init.d/s......
  • 当服务器重新装系统后ssh连不上warning
    这个问题可能是因为存放在本地的关于你服务器ip的一些key保存的还是上一套系统的指纹但系统已经更新了所以需要你刷新指纹才能进行连接 ···  1ssh-keygen-R......
  • 免费购入一个月虚拟主机???还可以无限续费???还有这好事???(本人在用稳定)
    大家来瞧一瞧看一看免费虚拟主机来看看网址:“https://idc.qinglin.co/”注册登录好后(晚上可能收不到邮箱验证码),看图操作! 点击“全部产品”拉下二级菜单  第二......
  • centos7.9重启后,主机名会变为IP地址
    现象:centos7.9重启后,主机名会变为IP地址当关闭DHCP功能,则主机名修改生效,否则重启后,主机名依旧变为图示的IP地址   解决方法:经过排查,由/etc/sysconfig......