25条最佳Mac终端SSH命令推荐
25条最佳Mac终端SSH命令推荐
SSH(Secure Shell)是Mac终端中不可或缺的工具,它不仅提供了安全的远程连接方式,还能实现文件传输、端口转发等多种功能。掌握一些常用的SSH命令,可以让你的工作效率大幅提升。以下是经过精选的25条SSH命令,它们涵盖了连接管理、文件传输、安全设置等多个方面。
连接管理类
1. 无密码登录设置
使用ssh-copy-id
可以将本地SSH密钥复制到远程主机,实现免密码登录。
ssh-copy-id user@host
2. 创建持久连接
通过ControlMaster
和ControlPath
选项,可以创建持久的SSH连接,避免频繁创建新连接。
ssh -MNf user@host
3. 通过中间主机连接
当目标主机无法直接访问时,可以通过中间主机进行跳板连接。
ssh -t reachable_host ssh unreachable_host
4. 端口转发
将本地端口转发到远程主机的指定端口,常用于访问内网服务。
ssh -N -L2001:localhost:80 somemachine
文件传输类
5. 远程文件比较
通过SSH管道传输远程文件内容,与本地文件进行比较。
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
6. 远程文件系统挂载
使用sshfs
可以将远程目录挂载到本地,像操作本地文件一样操作远程文件。
sshfs name@server:/path/to/folder /path/to/mount/point
7. 主机间文件复制
通过SSH管道实现两台远程主机之间的文件复制。
ssh root@host1 "cd /somedir/tocopy/ && tar -cf - ." | ssh root@host2 "cd /samedir/tocopyto/ && tar -xf -"
8. 远程文件编辑
通过SSH直接在本地编辑远程文件。
ssh user@host "cat /path/to/remotefile" > localfile
# 编辑完成后
ssh user@host "cat > /path/to/remotefile" < localfile
安全设置类
9. 修改SSH默认端口
为了增加安全性,可以修改SSH服务的默认端口。
# 在远程服务器上编辑sshd_config文件
ssh user@host "sudo sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config"
# 重启SSH服务
ssh user@host "sudo service ssh restart"
10. 禁用root远程登录
为了防止暴力破解,建议禁用root用户的远程登录。
# 在远程服务器上编辑sshd_config文件
ssh user@host "sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config"
# 重启SSH服务
ssh user@host "sudo service ssh restart"
11. 启用公钥认证
使用公钥认证可以提高SSH连接的安全性。
# 生成密钥对
ssh-keygen -t rsa
# 将公钥复制到远程主机
ssh-copy-id user@host
高级应用类
12. 远程命令执行
直接在本地执行远程主机上的命令。
ssh user@host "command"
13. 远程桌面连接
通过SSH隧道建立VNC连接,实现远程桌面访问。
ssh -L5901:localhost:5901 user@host
# 在另一终端运行vncviewer
vncviewer localhost:1
14. 声音传输
将本地麦克风输入传输到远程主机的扬声器输出。
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
15. 远程GUI程序运行
通过SSH转发X11连接,运行远程主机上的GUI程序。
ssh -fX user@host program
16. 会话管理
使用screen
或tmux
进行SSH会话管理,支持多窗口和断线重连。
ssh -t user@host screen -r
17. 端口敲击(Port Knocking)
通过特定的端口敲击序列,动态开启SSH端口,增加安全性。
knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000
18. 文件同步
使用rsync
通过SSH进行高效文件同步。
rsync -avz -e ssh user@host:/path/to/source /path/to/destination
19. 远程命令定时执行
通过SSH定时执行远程主机上的命令。
ssh user@host "at now + 1 minute <<< 'command'"
20. 远程日志查看
实时查看远程主机上的日志文件。
ssh user@host "tail -f /var/log/syslog"
21. 远程系统监控
通过SSH获取远程主机的系统状态信息。
ssh user@host "top -b -n 1"
22. 远程服务管理
通过SSH远程启动或停止服务。
ssh user@host "sudo service <service_name> <start|stop>"
23. 远程系统更新
通过SSH远程执行系统更新命令。
ssh user@host "sudo apt-get update && sudo apt-get upgrade"
24. 远程用户管理
通过SSH远程添加或删除用户。
ssh user@host "sudo useradd <new_user>"
ssh user@host "sudo userdel <user_to_delete>"
25. 远程系统重启
通过SSH远程重启系统。
ssh user@host "sudo reboot"
SSH使用建议
- 使用SSH密钥认证:相比密码认证,密钥认证更安全,也更方便。
- 定期更新SSH密钥:为防止密钥泄露,建议定期更新SSH密钥。
- 限制SSH访问:通过防火墙规则限制SSH访问来源,只允许信任的IP地址访问。
- 使用SSH隧道:对于敏感操作,建议使用SSH隧道保护数据传输。
- 监控SSH登录:定期检查SSH登录日志,及时发现异常登录尝试。
掌握这些SSH命令和最佳实践,可以让你在使用Mac终端时更加得心应手,无论是日常的远程服务器管理,还是复杂的网络操作,都能游刃有余。