ssh 是一个用于远程登录到其他计算机的命令,可以连接到远程服务器,并进行文件传输、远程执行命令等操作。
语法
-p
:指定端口(默认 22)-i
:指定私钥文件-o
:指定 SSH 选项-v
:显示调试信息
使用
如果用的是默认 22 端口,无需指定 -p
选项。
如果本机用户名和登录用户名一致,也可省略用户名:
使用 PEM 文件登录
- 直接使用 PEM 文件登录:
ssh -i <key.pem> <user>@<ip>
- 添加 Key:
ssh-add -k <key.pem>
#免密
注:报错可能是权限原因,先修改权限试试:chmod 600 <key.pem>
共享 ssh key
- 拷贝 key 到另一台电脑
- ssh-add ~/.ssh/id_ed 25519 设为默认
跳板机
通过跳板机登录到目标服务器。
另一种方式是在 ~/.ssh/config
文件中添加:
通过第二种方式配置后,直接使用 ssh target_host
即可登录到目标服务器;同时也支持在 [[VSCode]] 中通过 Remote - SSH 插件直接跳转到目标服务器进行开发。
服务端
配置
- 检查配置:
sshd -t
出现sshd -t
正常,但/usr/sbin/sshd -t
异常的情况,sshd 默认位置为:/usr/local/sbin/sshd
连接权限
限制用户
修改 /etc/ssh/sshd_config 文件
- DenyUsers: 拒绝
- AllowUsers: 允许
- UsePAM: 先过 PAM 检验
限制 IP
- /etc/hosts.deny
- /etc/hosts.allow