我是靠谱客的博主 乐观小蚂蚁,最近开发中收集的这篇文章主要介绍已有SSH公钥和私钥,配置通过密钥直接登录远程服务器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在做一个区块链项目需要用到链上交易数据,本来Etherum提供了方便好用的API,然而国内Etherum被墙了,导致没有全局VPN的我也没法用api爬数据。剩下的两个选项是用cn.etherum.com的中国站写爬虫拿数据,或者找老师要已经爬好的数据库。显而易见数据库更方便。然后教我怎么用数据库的同学给了我SSH的公钥、私钥和config文件,就没了。。现在配置ssh使其能利用已有公私钥对登录远程服务器。

已有的信息中,SSH公私钥对是通过ssh-keygen生成的,具体方法见设置 SSH 通过密钥登录。文章中一系列需要在远程服务器上配置的东西别人都已经做好了,不需要做。
已有的config文件如下:

Host jump
    HostName mirror1.xxx.top
    User yyy
    IdentityFile ~/.ssh/id_rsa
    Port 10022 

Host master
    HostName 192.168.1.xxx
    User yyy
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh jump nc %h %p

这个意思是需要先ssh master登录本地,再通过本地当跳板登录jump。
分析完已有信息、查完参考资料,把私钥id_rsa公钥id_rsa.pub和配置文件config都拷贝到~/.ssh/目录,然后

cat id_rsa.pub >> authorized_keys

这是因为要用本地机器当跳板,所以必须也把目标服务器的公钥加到本地机器认证的公钥中。
先直接ssh jump试试(这一步不是必要,只是好奇;P):

[root@izxxxxxxxxxxxxez .ssh]# ssh jump
The authenticity of host '[mirror1.oraoraoraoraora.top]:10022 ([47.114.53.36]:10022)' can't be established.
ECDSA key fingerprint is SHA256:mnxxxxxxIRk.
ECDSA key fingerprint is MD5:cc:xxxxxxxx:07.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[mirror1.xxx.top]:10022,[47.xxxx]:10022' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/root/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/id_rsa": bad permissions
Permission denied (publickey).

好吧,安全检查还挺到位的,修改私钥权限:

chmod 600 id_rsa

再次尝试ssh jump就可以啦。不过正确的使用方法应该是通过本机跳转到远程服务器,于是

[root@izwz9h2pyw54a09vs7sfcez .ssh]# ssh master
Enter passphrase for key '/root/.ssh/id_rsa': 

额,这个passphrase是生成公私钥对时为了不让私钥被滥用而设置的阶段密码。找同学要了密码之后终于登陆成功。
但是这样每次登陆时还是要输入passphrase,于是把私钥加到ssh认证的keys中。

$ ssh-agent bash #打开新的ssh agent,不然会报错Could not open a connection to your authentication agent.
$ ssh-add -k ~/.ssh/id_rsa
Enter passphrase for /root/.ssh/id_rsa: 
Identity added: /root/.ssh/id_rsa (yyy@localhost)

这样下次就可以使用别名ssh登陆而且不需要再输入密码了。

最后

以上就是乐观小蚂蚁为你收集整理的已有SSH公钥和私钥,配置通过密钥直接登录远程服务器的全部内容,希望文章能够帮你解决已有SSH公钥和私钥,配置通过密钥直接登录远程服务器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部