1.生成私钥和公钥
windows上在任意位置,右键Git Bash Here,输入以下命令
ssh-keygen -t rsa -C “[email protected]”
或者
ssh-keygen -t rsa -b 4096
或者
ssh-keygen -t rsa
其中passphrase是指该密钥的保护密码,可直接回车跳过
会在windows的用户目录下面生成两个文件,私钥: id_rsa,公钥: id_rsa.pub
2.将公钥放在服务器上
在linux的用户目录下,进入.ssh的文件夹内,若没有.ssh的文件夹,则新建一个,在.ssh的文件夹下新建一个authorized_keys的文件,将id_rsa.pub中的内容拷贝到authorized_keys中,并修改权限,我是直接用notepad++打开id_rsa.pub的文件,然后全选,复制,粘贴到authorized_keys的文件中的。
cd ~/.ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
3.打开vscode安装remote SSH插件,并配置config
打开这个.ssh/config的配置文件并进行编辑
Host ptc_server #连接的名称,可随便命令,主要起显示的作用
HostName 192.168.**.** #服务器的ip地址,根据要连接的服务器的ip地址来填写
User peng.sheng #linux用户的账号
Port 22 #端口,默认是22,貌似填不填都可以
IdentityFile "C:\Users\6639\.ssh\id_rsa" #私钥在windows上的路径
每次更新该配置之后,可点击该符号,将config中的改动应用在vscode中。
4.开启连接
点击该箭头,即可开启远程连接
即可不用输密码,连接到远程服务器。ctrl+shift+p,然后选择Python: Select Interpreter,设置好python在服务器上的解释器的路径,就可以远程连接进行debug了。
若需要断开连接, 如下所示,
点击关闭远程连接,即可恢复本地的代码编辑。
过程中遇到的问题:
我在开始配置的过程中,每次连接的时候,都需要输入服务器的用户密码,做不到免密连接,经过多次尝试,修改~/.ssh以及authorized_keys这两个文件夹的权限,
.ssh的权限设置为700
authorized_keys的权限设置为600
然后用notepad++手动将id_rsa.pub的内容,复制粘贴到authorized_keys中,而不是网上其他人用的cat id_rsa.pub >> authorized_keys的方法
我不确定这两点,是否有影响,反正最后,试了很多次,终于调通了,每次远程连接,不用输入密码了。
网上有人说需要改,/etc/ssh/sshd_config 或 ssh_config,我也改过,然后重启ssd的服务,貌似没有什么作用,最后所有的ssh_config的改动,全部还原了,我的经验,实现免密连接,感觉和这个ssh_config的配置关系不大。
版权归原作者 9分钟带帽 所有, 如有侵权,请联系我们删除。