ssh连接服务器
使用 RSA 密钥来免密登录
使你的服务器支持密钥登陆,如果已经设置过的可以跳到下一步
可以去 这里 看一看菜鸟教程的教学,我把主要过程摘录如下:
登陆你打算使用密钥登录的账户,执行以下指令:
1
cd ~ & ssh-keygen
- 然后一路回车,不要设置密钥锁码!否则登陆的时候还得再输这个码,直接回车就行
1
2
3
4cd .ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh用 FTP 把 ~/. ssh/id_rsa(就是刚生成的私钥)下下来,我的建议是重命名(起个有意义的名字)后放进
%USERPROFILE%/.ssh/
目录下,因为自机生成的密钥也会放在这个文件夹, 可修改相应的config
文件编辑 /etc/ssh/sshd_config, 增加(修改/去除注释化/检查)的设置如下
1
2
3
4
5
6
7RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
# 如果希望的话,可以用下面的设置禁止使用密码登陆
# 记得先测试了可以用密钥再改
PasswordAuthentication no- 测试可以使用密钥连接后,重启 SSH 服务
1
service sshd restart
将 Windows Terminal 的配置中 “ 命令行 “ 的值更改一下
1
2
3ssh -i [私钥路径] -p [端口] [用户名]@[服务器ip]
#例如:
ssh -i "C:/Users/usr/.ssh/id_rsa_server" -p 2342 example@114.514.114.514如果你是跟着别人的教程或者官方文档走的,在 settings.json 中写路径的时候记得转义引号,使用 / 而非 ,或者你也可以转义。如:
1 | "commandline": "ssh -i \"C:\\Users\\usr\\.ssh\\id_rsa_server\" -p 1145 example@114.514.114.514", |
贴上微软官方文档的链接 Windows 终端 SSH | Microsoft Learn
~/.ssh/config 配置实现
最常用的登陆方法是 ssh username@server -p port
通过 ~/.ssh/confg
配置文件,实现免密、更改名称的登陆方法,不论你的 username、server address、port 是什么,都可以不用输入,只需要输入一个替换的名称即可登陆该服务器。像这样 ssh <any name here>
将公钥 rsa. pub 上传到服务器
使用 ssh-copy-id 命令将生成的公钥上传到服务器
1 | $ ssh-copy-id -i ~/.ssh/id_rsa.pub username@server -p 22 |
ssh-copy-id 的本质是把你本地的公钥添加到服务器/远程机的 ~/.ssh/authorized_keys
文件里
powershell 不给力,那我们自己 Ctrl CV 就好了
ssh-keygen
生成密钥后,家目录/.ssh 就会多两个文件
id_rsa
:私钥id_rsa.pub
:公钥
注意权限:chmod 600 ~/.ssh/config
常用的 SSH 配置项
1、config 文件配置项
1 | Host 别名 |
2、Host 配置
Host 配置项标识了一个配置区段。
SSH 配置项参数值可以使用通配符:
1 | '*' 代表 0~n 个非空白字符。 |