centos

CentOS SSH命令行有哪些常用技巧

小樊
48
2025-10-06 21:06:57
栏目: 智能运维

在 CentOS 系统中,SSH 命令行是一个非常强大的工具,用于远程管理和操作服务器。以下是一些常用的 SSH 命令行技巧:

1. 连接到远程服务器

ssh username@hostname_or_ip

2. 使用密钥认证

为了避免每次连接时输入密码,可以使用 SSH 密钥对进行认证。

生成密钥对

ssh-keygen -t rsa -b 4096

这会在 ~/.ssh 目录下生成 id_rsa(私钥)和 id_rsa.pub(公钥)文件。

将公钥复制到远程服务器

ssh-copy-id username@hostname_or_ip

3. 使用 SSH 配置文件

为了简化连接过程,可以在 ~/.ssh/config 文件中配置常用的连接信息。

Host myserver
    HostName hostname_or_ip
    User username
    IdentityFile ~/.ssh/id_rsa

之后可以直接使用 ssh myserver 连接。

4. 使用 SSH 隧道

SSH 隧道可以用于安全地转发本地端口到远程服务器。

本地端口转发

ssh -L local_port:remote_host:remote_port username@hostname_or_ip

例如,将本地的 8080 端口转发到远程服务器的 80 端口:

ssh -L 8080:localhost:80 username@hostname_or_ip

远程端口转发

ssh -R remote_port:localhost:local_port username@hostname_or_ip

例如,将远程服务器的 8080 端口转发到本地的 80 端口:

ssh -R 8080:localhost:80 username@hostname_or_ip

5. 使用 SSH 代理

SSH 代理可以用于在多个 SSH 会话之间共享认证信息。

启动 SSH 代理

eval "$(ssh-agent -s)"

添加私钥到代理

ssh-add ~/.ssh/id_rsa

6. 使用 SSH 保持连接

为了避免长时间无操作导致的连接断开,可以使用 ServerAliveInterval 选项。

~/.ssh/config 文件中添加:

Host *
    ServerAliveInterval 60

这会每 60 秒发送一次保持连接的信号。

7. 使用 SSH 执行远程命令

可以直接在 SSH 命令中执行远程命令,而不需要进入交互式 shell。

ssh username@hostname_or_ip "command_to_run"

例如,在远程服务器上列出当前目录的文件:

ssh username@hostname_or_ip "ls -l"

8. 使用 SSH 复制文件

可以使用 scp 命令在本地和远程服务器之间复制文件。

从本地复制到远程

scp local_file username@hostname_or_ip:/remote/path

从远程复制到本地

scp username@hostname_or_ip:/remote/path/remote_file local_path

9. 使用 SSH 批量操作

可以使用 sshxargsparallel 等工具进行批量操作。

例如,批量重启多个服务器:

echo -e "server1\nserver2\nserver3" | xargs -I {} ssh username@{}

这些技巧可以帮助你更高效地使用 SSH 命令行进行远程管理和操作。

0
看了该问题的人还看了