## 使用腾讯免密证书登录服务器
在腾讯云后台打开SSH密钥,新建一个密钥信息,后台生成一个公钥,第一次生成时可以下载私钥文件ssh.pem.保存在本地路径为
/Users/yk/ssh.pem
,注意保存pem文件,文件只生成一次.编辑远程服务器__CODE_STANDALONE_START__/root/.ssh/authorized_keys__CODE_STANDALONE_END__文件将腾讯云后台生成的公钥复制进去.
公钥代码示例:
ssh-rsa XXX skey-iybcvi2f
- 在终端软件中用以下的命令登录远程服务器,注意指定你自已的证书绝对路径.
#赋予私钥文件仅本人可读权限
chmod 400 /Users/yyw/ssh.pem
#在终端中开启登录
ssh -i '/Users/yyw/ssh.pem' root@xx.xx.xx.xx
在 vscode 中编辑/Users/yyw/.ssh/config文件写入以下内容
Host 49.233.117.226
HostName 49.233.117.226
IdentityFile ~/ssh.pem
PreferredAuthentications publickey
#ForwardAgent yes
User root
远程连接完成
本机生成私钥,修改远程配置文件加入公钥进行登录的方法
在本地电脑上用ssh-keygen生成密钥对。
在macos 主机本地生成密钥对文件名是id_rsa_server_someone
在生成过程中要求输入ssh文件的密码,可以直接回车留空:
ssh-keygen -t rsa -f id_rsa_server_someone
生成两个文件,一个是私钥无扩展名,一个是公钥扩展名是 pub
把公钥文件上传到远程服务器,并把内容复制到__CODE_STANDALONE_START__/root/.ssh/authorized_keys__CODE_STANDALONE_END__文件中
以下的命令为追加内容
cat id_rsa_server_someone.pub >> authorized_keyscd /
最后,在vscode 的ssh连接配置文件中修改config中修改为:
Host 192.168.88.66
HostName 192.168.88.66
#文件路径为当前用户根目录/Users/yyw/id_rsa_server_someone
IdentityFile ~/id_rsa_server
PreferredAuthentications publickey
#ForwardAgent yes
User root
Host 49.233.117.226
HostName 49.233.117.226
IdentityFile ~/id_rsa_server_someone
PreferredAuthentications publickey
#ForwardAgent yes
User root
出错的检查处理方法:
启用ssh链接方法
要求确认远程主机已经正确设置了SSH服务,并且允许使用SSH密钥来进行身份验证。通过编辑远程主机的SSH配置文件(一般在/etc/ssh/sshd_config路径下),可以启用SSH密钥身份验证,具体操作是将PubkeyAuthentication设置为yes。
修入配置文件后重启 ssh
sudo systemctl restart sshd
如果出现提示远程服务器密码已变更(重要)
可以删除macos用户主目录.ssh下known_hosts文件
ForwardAgent yes的用途
"ForwardAgent yes" 意味着在SSH连接中启用代理转发功能。当这个选项被设置为"yes"时,SSH客户端会将本地计算机上的代理密钥传输到远程主机,从而允许用户在远程主机上使用本地计算机上的私钥进行认证。这样可以方便地在多个主机之间传递身份验证信息,而无需在每台主机上都存储私钥。
如果root用户下没有.ssh文件 没有用root用户登录过,执行下ssh操作,就能自动生成
ssh localhost
输入yes
输入密码
cd /root/.ssh/就进入了root下的.ssh目录
出现密码无法登录时
确认authorized_keys文件中的内容与mac下生成并上传的公钥pub文件内容相同
windows主机的登录方法
先贴总结:
本机安装ssh,check ssh是否安装成功: ssh 或者 ssh-V
vscode安装remote development 插件
配置密钥
(1)在本地机器生成密钥对(公钥+私钥):ssh-keygen
(2)私钥放本机,公钥放远程(~/.ssh路径下)
(3)在远程机器用公钥生成authorized_keys:
进入home目录下的.ssh文件夹:cd ~/.ssh
cat id_rsa.pub >> authorized_keys
(4)vscode config文件加入本机私钥路径
细节如下:
本地机器安装ssh(windows系统)
SSH全称Secure Sheel,是一个远程连接的协议,需要在本机上安装ssh才能够远程连接到server。
check ssh是否安装成功:
(1)在terminal中输入ssh ,出现如下信息表明安装成功
(2)或者输入ssh -V,出现已安装的ssh版本,代表安装成功
vscode安装remote development 插件
配置密钥
(1)用【ssh-keygen】命令来生成密钥对:
id_rsa.pub是公钥,id_rsa是私钥。
如果多平台都要使用ssh,则需要修改密钥文件名,避免冲突:
(2)公钥放server(远程主机)上,私钥放本机上。
进入刚才密钥对保存的folder(C:\Users\10747/.ssh),把.pub后缀的公钥传输到server上(可以用scp命令)
公钥放在server的**~/.ssh**文件夹中
(3)进入server 的~/.ssh 文件夹,使用【cat】命令,用公钥文件来生成 authorized_keys。
生成完之后输入【ls】可看到当前路径多了一个authorized_keys文件。
(4)修改vscode的config file,加入 IdentityFile 和对应的本机私钥路径
① 打开.ssh/config文件
② 修改.ssh/config文件:加入IdentityFile的路径(也就是私钥在本机的所在位置)
这时候再用vscode登录server就不用输入密码了!
发表留言 取消回复