通过vscode的remote-ssh插件可以在vscode上远程登陆服务器,登录和打开工作文件夹时都需要输入密码,可以通过配置ssh免密登录,使登录和使用更加丝滑
必要软件安装
ssh-keygen
和 ssh-copy-id
安装,window电脑powershell中这两个命令已内置
ssh-keygen配置密钥对
配置密钥
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
PS C:\Users\griedzx> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\griedzx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\griedzx/.ssh/id_rsa
Your public key has been saved in C:\Users\griedzx/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:sYURFrXR+/Xffdy+HmOSu1yxPCH8WbXcoKNvSZF4RDQ griedzx@dzx_pc
The key's randomart image is:
+---[RSA 3072]----+
| =+o+E |
| . o oo. |
| o oo o. .|
| +. *...=|
| S .o= *+|
| ...* B|
| .. + %=|
| .+ = @|
| ..+o++|
+----[SHA256]-----+
|
注意 Enter passphrase (empty for no passphrase):
不输入密码,直接回车继续,否则之前对应输入服务器用户密码的地方变成了密钥对的密码
ssh-keygen常用参数
1
2
3
4
5
6
7
8
|
ssh-keygen
-t: 密钥类型, 可以选择 dsa | ecdsa | ed25519 | rsa;
-f: 密钥目录位置, 默认为当前用户home路径下的.ssh隐藏目录, 也就是~/.ssh/, 同时默认密钥文件名以id_rsa开头. 如果是root用户, 则在/root/.ssh/id_rsa, 若为其他用户, 则在/home/username/.ssh/id_rsa;
-C: 指定此密钥的备注信息, 需要配置多个免密登录时, 建议携带;
-N: 指定此密钥对的密码, 如果指定此参数, 则命令执行过程中就不会出现交互确认密码的信息了.
|
设定目录下会出现密钥对文件:id_rsa.pub是公钥 id_rsa是私钥
公钥传输至服务器
公钥放server(远程主机)上,私钥放本机上
代码传输
公钥配置至服务器上(Window -> Linux)
1
2
3
4
|
$USER_AT_HOST = "yh@760755rf68.imdo.co" #id@ip
$PUBKEYPATH = "$HOME/.ssh/id_rsa.pub"
$pubKey = (Get-Content "$PUBKEYPATH"|Out-string); ssh -p 37763 "$USER_AT_HOST" "echo '${pubKey}' >> ~/.ssh/authorized_keys"
|
简单粗暴的方法
建议直接cat 本地的id_rsa.pub
1
|
PS C:\Users\griedzx\.ssh> cat id_rsa.pub
|
然后复制内容到服务器的~/.ssh/authorized_keys中新增一行
#服务器端
1
2
|
(base) yh@localhost 21:21:38 ~/.ssh
$ vim authorized_keys
|
修改$home/.ssh/config
修改.ssh/config文件:加入IdentityFile的路径(也就是私钥在本机的所在位置)
1
2
3
4
5
|
Host yh_xw
HostName 760755rf68.imdo.co
Port 37763
User yh
IdentityFile "C:\Users\griedzx\.ssh\id_rsa"
|
vscode登录server就不用输入密码了