温馨提示×

ssh远程执行centos命令技巧

小樊
70
2025-04-04 11:38:59
栏目: 智能运维

使用SSH远程执行CentOS命令时,可以采用以下技巧来提高效率和安全性:

1. 使用SSH密钥认证

  • 生成密钥对
    ssh-keygen -t rsa -b 4096
    
  • 将公钥复制到远程服务器
    ssh-copy-id user@remote_host
    

2. 使用SSH别名

  • ~/.ssh/config文件中添加别名,简化命令输入:
    Host myserver
        HostName remote_host
        User username
        IdentityFile ~/.ssh/id_rsa
    
  • 然后可以直接使用:
    ssh myserver
    

3. 使用SSH代理转发

  • 允许本地SSH客户端转发远程服务器的端口到本地:
    ssh -L local_port:localhost:remote_port user@remote_host
    

4. 批量执行命令

  • 使用sshxargsparallel工具批量执行命令:
    ssh user@remote_host "ls /path/to/directory" | xargs -I {} ssh user@remote_host "command_on_each_file {}"
    
    或者使用parallel
    ssh user@remote_host "ls /path/to/directory" | parallel -j 4 ssh user@remote_host "command_on_each_file {}"
    

5. 使用SSH隧道

  • 创建一个安全的隧道来访问内部网络服务:
    ssh -L 8080:localhost:80 user@remote_host
    
    这样可以在本地通过http://localhost:8080访问远程服务器上的80端口服务。

6. 使用SSH配置文件

  • ~/.ssh/config文件中配置多个主机和选项,方便管理和使用:
    Host server1
        HostName server1.example.com
        User user1
        Port 2222
    
    Host server2
        HostName server2.example.com
        User user2
        Port 2222
    

7. 使用SSH保持连接

  • 使用ssh -o ServerAliveInterval=60选项来保持连接活跃,防止因长时间无活动而被断开:
    ssh -o ServerAliveInterval=60 user@remote_host
    

8. 使用SSH多路复用

  • 启用SSH多路复用以减少连接开销:
    ssh -M -S ~/.ssh/ssh_multiplexing user@remote_host
    
    并在~/.ssh/config中启用:
    Host *
        ControlMaster auto
        ControlPath ~/.ssh/sockets/%r@%h:%p
        ControlPersist 1h
    

9. 使用SSH脚本自动化

  • 编写脚本来自动化常见的SSH任务,例如备份、更新等:
    #!/bin/bash
    for host in server1 server2; do
        ssh user@$host "backup_script.sh"
    done
    

10. 使用SSH安全选项

  • 使用ssh -o StrictHostKeyChecking=no来避免首次连接时的确认提示(不推荐在生产环境中使用):
    ssh -o StrictHostKeyChecking=no user@remote_host
    

通过这些技巧,你可以更高效、更安全地使用SSH远程执行CentOS命令。

0