说明:文章为本小白记录使用远程服务器时踩的坑,欢迎大佬批评指正
文章目录
一、生成本机密钥并添加到服务器中
首先在终端输入代码生成本机的密钥和公钥:
ssh-keygen -t rsa
会生成 id_rsa
和 id_rsa.pub
,它们分别对应为你本机的公钥和密钥,我们将 id_rsa.pub
发给服务器管理人员或是上传到相应平台,即在服务器上允许你本机登录
注意:key有两种格式,一种是rsa,一种是dsa,有些服务器并不支持dsa的!
二、使用VSCode扩展插件Remote-SSH登录远程服务器
在VSCode扩展中找到插件并下载,然后点击远程资源管理器中的 ‘+’,输入:
ssh 账号名称@服务器地址 -p 端口号
如:
ssh huang@103.168.1.123 -p 123
然后经服务器验证fingerprint之后就能成功登录啦~
再罗嗦一下,在vscode里按 crtl+shift+` 可以打开终端(我自己找了好久)
三、通过跳板机A登录远程服务器B
1. 登录跳板机
日常开发中,为了安全性等方面考虑,连接远程服务器之前,需要先连接跳板机,这个方法与使用VSCode扩展插件Remote-SSH登录远程服务器一致,不多赘述。
2. 在跳板机中生成密钥
想要通过跳板机登录远程服务器很关键的一点是,不仅你本机的密钥需要上传到跳板机A,跳板机A上也需要生成一个密钥上传到远程服务器B(我第一次使用就没有把跳板机的密钥上传,所以死活登录不上去)
同样的方法:打开跳板机的终端输入ssh-keygen -t rsa
四、通过跳板机把数据迁移到远程服务器B上
传输文件:scp 文件名 用户名@服务器B的IP地址:服务器B上的目的地址
scp test.py huang@192.168.1.123:/home/huang/
传输文件夹:scp -r 文件名 用户名@服务器B的地址:服务器B上的目的地址
scp test/folder huang@192.168.1.123:/home/huang/
五、在VSCode里配置跳板机和目标机
直接在ssh扩展插件里的config里加入下面的代码,就可以连接上TargetMachine
Host JumpMachine
HostName 1.1.1.1
User root
Port 22
Host TargetMachine
HostName 1.1.1.1
User root
ProxyCommand ssh -W %h:%p JumpMachine
六、可能出现的问题
vscode无法连接服务器,报“Acquiring lock on/home/~”和“过程试图写入的管道不存在”错误
解决步骤:
- 删除本机windows目录下,C:\Users\用户名.ssh\known_hosts,重新登录,如果不行就继续下面一步
- 打开remote ssh的setting,将 remote.SSH.lockfilesInTmp 打勾
七、参考
https://blog.csdn.net/weixin_34790159/article/details/116557869
https://blog.csdn.net/han_hhh/article/details/120659311
https://zhuanlan.zhihu.com/p/464993796