SSH 命令的11种用法

2022年5月19日 28点热度 0人点赞

Linux系统的远程管理工具大概有几种:telnet,ssh,vnc等,其中ssh是最常用的管理方法,采用密文的传输方式,简单安全。本文介绍就介绍下ssh的11种用法:

方法/步骤

  1. 1

    使用ssh连接远程主机

    最简单的用法只需要指定用户名和主机名参数即可,主机名可以是 IP 地址或者域名。

    $ ssh user@hostname

  2. 2

    ssh连接到其他端口

    SSH 默认连接到目标主机的 22 端口上,可以使用-p选项指定端口号

    $ ssh -p 10022 user@hostname

  3. 3

    使用ssh在远程主机执行一条命令并显示到本地, 然后继续本地工作

    直接连接并在后面加上要执行的命令就可以了

    $ ssh [email protected] ls -l

  4. 4

    在远程主机运行一个图形界面的程序

    使用ssh的-X选项,然后主机就会开启 X11 转发功能

    $ ssh -X [email protected]

  5. 5

    如何配置 SSH

    SSH 的配置文件在 /etc/ssh/sshd_config 中,你可以看到端口号, 空闲超时时间等配置项。

  6. 6

    构建 ssh 密钥对

    使用 ssh-keygen -t +算法 ,现在大多数都使用rsa或者dsa算法。

    $ ssh-keygen -t rsa

  7. 7

    查看是否已经添加了对应主机的密钥

    使用-F选项

    $ ssh-keygen -F 222.24.51.147

  8. 8

    删除主机密钥

    使用-R选项,也可以在~/.ssh/known_hosts文件中手动删除

    $ ssh-keygen -R 222.24.51.147

  9. 9

    绑定源地址

    如果你的客户端有多于两个以上的 IP 地址,你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器。为了解决这种情况,我们可以使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。

    $ ssh -b 192.168.0.200  [email protected]

  10. 10

    对所有数据请求压缩

    使用 -C 选项,所有通过 SSH 发送或接收的数据将会被压缩,并且任然是加密的。

    $ ssh -C [email protected]

  11. 11

    打开调试模式

    因为某些原因,我们想要追踪调试我们建立的 SSH 连接情况。SSH 提供的 -v 选项参数正是为此而设的。其可以看到在哪个环节出了问题。

    $ ssh -v [email protected]

  12. 12

    /etc/ssh/sshd_config配置文件详细说明"

    Port 2
    “Port”设置sshd监听的端口号。

    ListenAddress 192.168.1.1
    “ListenAddress”设置sshd服务器绑定的IP地址。

    HostKey /etc/ssh/ssh_host_key

    “HostKey”设置包含计算机私人密匙的文件。

    ServerKeyBits 1024
    “ServerKeyBits”定义服务器密匙的位数。

    LoginGraceTime 600
    “LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。

    ClientAliveInterval 300(默认为0)
    这个参数的是意思是每5分钟,服务器向客户端发一个消息,用于保持连接

    KeyRegenerationInterval 3600
    “KeyRegenerationInterval”本文所有工具都可以在《Linux 就该这么学》中找到相关的解释!设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。

    PermitRootLogin no
    “PermitRootLogin”设置root能不能用ssh登录。这个选项一定不要设成“yes”。

    IgnoreRhosts yes
    “IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。

    IgnoreUserKnownHosts yes
    “IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的“$HOME/.ssh/known_hosts”

    StrictModes yes
    “StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。

    X11Forwarding no
    “X11Forwarding”设置是否允许X11转发。

    PrintMotd yes
    “PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。

    SyslogFacility AUTH
    “SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility pre”。

    LogLevel INFO
    “LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。

    RhostsAuthentication no
    “RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。

    RhostsRSAAuthentication no
    “RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。

    RSAAuthentication yes
    “RSAAuthentication”设置是否允许只有RSA安全验证。

    PasswordAuthentication yes
    “PasswordAuthentication”设置是否允许口令验证。

    PermitEmptyPasswords no
    “PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论