使用Ubuntu SSH远程执行命令时,可以采用以下一些技巧来提高效率和安全性:
-
使用SSH密钥认证:
- 生成密钥对:
ssh-keygen -t rsa
- 将公钥复制到远程服务器:
ssh-copy-id username@ip_address
- 使用密钥认证连接:
ssh -i /path/to/private_key username@ip_address
- 生成密钥对:
-
执行多条命令:
- 在远程服务器上执行多条命令时,可以使用分号分隔命令,例如:
ssh username@ip_address "command1; command2"
- 或者将多个命令放在一个脚本文件中,并在远程执行该脚本文件。
- 在远程服务器上执行多条命令时,可以使用分号分隔命令,例如:
-
保持SSH会话不中断:
- 使用
nohup
命令:nohup long_running_command &
,这样命令将在后台运行,即使断开SSH连接也会继续执行。 - 使用
tmux
工具,它可以在远程会话中断开后保持会话运行。
- 使用
-
指定端口号:
- 连接到指定端口的SSH服务器:
ssh -p port_number username@ip_address
- 连接到指定端口的SSH服务器:
-
交互式命令:
- 对于需要交互的命令,可以使用
-t
选项显式请求一个TTY:ssh -t username@ip_address "command"
- 对于需要交互的命令,可以使用
-
执行远程脚本:
- 将本地脚本复制到远程服务器并执行:
scp username@ip_address:/path/to/local/script.sh /path/to/remote/destination
- 在远程服务器上执行脚本:
ssh username@ip_address "/path/to/remote/script.sh"
- 将本地脚本复制到远程服务器并执行:
-
使用SSH配置文件:
- 创建和编辑
~/.ssh/config
文件来定义连接参数和别名,例如:Host myserver HostName ip_address User username Port 2222 IdentityFile /path/to/private_key
- 使用配置文件连接:
ssh myserver
- 创建和编辑
-
监控和审计:
- 定期检查
/var/log/auth.log
文件以监控SSH登录尝试,并执行失败尝试的审计。
- 定期检查
-
使用SSHpass(不推荐):
- 虽然可以使用
sshpass
来自动输入密码,但由于安全性问题,不推荐使用。
- 虽然可以使用