使用SSH(Secure Shell)在Ubuntu上进行远程命令执行是一个常见且强大的操作。以下是一些有用的技巧和步骤,帮助你更高效和安全地使用SSH。
ssh 用户名@远程IP地址
例如:ssh root@192.168.1.100
~/.ssh/config
你可以在该文件中配置多个主机,使得每次连接时只需指定别名即可。例如:Host myserver
HostName 192.168.1.100
User user
Port 2222
IdentityFile ~/.ssh/id_rsa
使用时只需:ssh myserver
生成密钥对:
ssh-keygen -t rsa
这将生成id_rsa
(私钥)和id_rsa.pub
(公钥)文件。
部署公钥:
使用ssh-copy-id
将公钥复制到远程服务器:
ssh-copy-id user@remote_host
或者手动复制:
cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
端口转发: 本地端口转发(访问内网服务):
ssh -L 8080:internal_host:80 user@jump_host
动态SOCKS代理:
ssh -D 1080 user@remote_host
使用SSH执行远程命令: 你可以在远程命令后直接添加要执行的命令,例如:
ssh user@remote_host 'ls; cd /home; pwd'
使用nohup
在后台运行命令:
ssh user@remote_host 'nohup long_running_command &'
这样即使SSH连接断开,命令也会继续执行。
禁用密码认证:
在/etc/ssh/sshd_config
中设置:
PermitRootLogin no
PasswordAuthentication no
然后重启SSH服务:
sudo systemctl restart sshd
使用防火墙限制SSH端口访问:
sudo ufw allow ssh
定期更新系统和SSH软件包: 保持系统和软件的最新状态是基本的安全实践。
通过这些技巧和建议,你可以更安全、高效地使用SSH在Ubuntu上进行远程命令执行和管理。希望这些信息对你有所帮助!