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