SSH(Secure Shell)是一种用于远程登录和安全传输数据的协议,在Linux系统管理中扮演着重要的角色。作为一名Linux系统管理员,熟悉和掌握SSH命令是必不可少的。在本文中,我们将分享一份详细的SSH命令备忘单,为每个命令提供详细的示例,帮助您更好地理解和使用它们。
连接到远程服务器
1. ssh
使用ssh命令连接到远程服务器。
示例:
ssh username@hostname
2. ssh -p
指定远程服务器的SSH端口。
示例:
ssh -p 2222 username@hostname
3. ssh-keygen
生成SSH密钥对。
示例:
ssh-keygen -t rsa -b 4096
4. ssh-copy-id
将SSH公钥复制到远程服务器。
示例:
ssh-copy-id username@hostname
文件传输
5. scp
通过SSH在本地系统和远程服务器之间传输文件。
示例:
scp file.txt username@hostname:/path/to/destination
6. sftp
使用SFTP协议在本地系统和远程服务器之间进行交互式文件传输。
示例:
sftp username@hostname
远程命令执行
7. ssh command
在远程服务器上执行命令。
示例:
ssh username@hostname command
8. ssh -t
通过SSH在远程服务器上执行交互式命令。
示例:
ssh -t username@hostname command
9. ssh -f
在远程服务器上后台执行命令。
示例:
ssh -f username@hostname command
配置和管理
10. ~/.ssh/config
编辑SSH客户端配置文件。
示例:
vi ~/.ssh/config
11. ssh-agent
启动ssh-agent并添加SSH私钥。
示例:
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
12. ssh-keyscan
获取远程服务器的SSH公钥。
示例:
ssh-keyscan hostname
13. sshd_config
编辑SSH服务器配置文件。
示例:
vi /etc/ssh/sshd_config
14. systemctl
管理SSH服务。
示例:
sudo systemctl start ssh
sudo systemctl stop ssh
sudo systemctl restart ssh
隧道和端口转发
15. ssh -L
在本地端口和远程服务器之间创建本地隧道。
示例:
ssh -L local_port:remote_host:remote_port username@hostname
16. ssh -R
在远程端口和本地服务器之间创建远程隧道。
示例:
ssh -R remote_port:local_host:local_port username@hostname
17. ssh -D
在本地系统上创建动态端口转发。
示例:
ssh -D local_port username@hostname
SSH密钥管理
18. ssh-add
将SSH私钥添加到ssh-agent中。
示例:
ssh-add ~/.ssh/id_rsa
19. ssh-keygen
生成SSH密钥对。
示例:
ssh-keygen -t rsa -b 4096
20. ssh-copy-id
将SSH公钥复制到远程服务器。
示例:
ssh-copy-id username@hostname
21. ssh-keyscan
获取远程服务器的SSH公钥。
示例:
ssh-keyscan hostname
安全配置
22. ~/.ssh/known_hosts
编辑已知主机的公钥列表。
示例:
vi ~/.ssh/known_hosts
23. /etc/ssh/sshd_config
编辑SSH服务器的配置文件。
示例:
sudo vi /etc/ssh/sshd_config
24. ssh -C
启用压缩以减少数据传输量。
示例:
ssh -C username@hostname
25. ssh -o
使用自定义选项连接到远程服务器。
示例:
ssh -o "OptionName=value" username@hostname
总结
这些是Linux系统管理员有用的SSH命令备忘单,每个命令都附带了详细的示例。通过熟练掌握这些命令,您将能够轻松连接到远程服务器,执行远程命令,传输文件以及配置和管理SSH服务。希望这份备忘单对您的工作有所帮助,提高您在Linux系统管理中的效率和安全性!