ssh
key 密钥管理
# 生成新的密钥
ssh-keygen -t ed25519 -C "chenwx716@163.com" -f chenwx_ed25519
# 上传公钥
ssh-copy-id -i chenwx_ed25519 user1@192.168.0.204
ssh-copy-id -f -i chenwx_ed25519 user1@192.168.0.204 # 强制上传, 目标可能会出现多行
# 移除旧 key
sed -i '/chenwx716@gmail.com/d' .ssh/authorized_keys
# 扫描和获取目标服务器的指纹
ssh-keyscan 192.168.5.9
# 查看本地是否有添加目标主机的公钥指纹
ssh-keygen -F 192.168.5.9
# del host 公钥指纹
ssh-keygen -R 192.168.5.9
# 从私钥导出公钥
ssh-keygen -y -f cwx-xg-tmp1-ed25519访问目标服务器
# 忽略指纹验证, 首次ssh连接不提示yes
-o StrictHostKeyChecking=no
# 远程su执行命令 Cmd="\"/sbin/ifconfig eth0\""
ssh -t -p 22 $user@$Ip /bin/su - root -c {$Cmd};远程脚本执行
# 方法一
ssh user@server bash < /local/script.sh
# 启动远程主机的shell
# -t 标志用于强制分配伪终端
# -l 表示为登陆shell
ssh -t user1@10.2.1.67 'cd /tmp/; bash'
ssh -t user1@10.2.1.67 'cd /tmp/; bash -l'
# 先切换目录,再执行命令,然后启动shell, $SHELL 使用系统默认shell
ssh -t user1@10.2.1.67 'cd /tmp && uname -a && exec $SHELL -l'文件管理
# 用DIFF对比远程文件跟本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -隧道
## 正向隧道 - 本地监听地址:最终目标地址
ssh -Nf -L 0.0.0.0:8080:172.31.2.1:8080 server -o ServerAliveInterval=60 -o ServerAliveCountMax=5跳板机
# 使用跳板机登录目标服务器
ssh -J server1 server2
ssh -J server1 server2 server3 # 多级跳sshd 管理
# sshd_config
Port 2022
ListenAddress 10.2.1.5selinux
# 修改默认端口号之后
semanage port -a -t ssh_port_t -p tcp 2022最后更新于