Linux下ssh客户端配置

标签

dev

host

ssh

targaryen

user

发布时间:

本文字数:641 字 阅读完需:约 2 分钟

在linux下,~/.ssh目录是ssh的配置文件路径,其中./ssh/config文件可以用于自定义ssh服务器。

1.概述

通常,当通过 SSH 连接到远程服务器时,您将指定远程用户名、主机名和端口。例如,要从命令行以名为portjohn的主机的用户身份登录,您可以键入:dev.example.com``2322

ssh john@dev.example.com -p 2322

要使用与上面命令中提供的相同选项连接到服务器,只需键入ssh dev,同时将以下行放入您的"~/.ssh/config文件中:

Host dev
    HostName dev.example.com
    User john
    Port 2322

现在,当您键入 时,ssh 客户端将读取配置文件并使用为主机ssh dev指定的连接详细信息:dev

2.SSH配置文件示例

文件路径 ~/.ssh/config

Host targaryen
    HostName 192.168.1.10
    User daenerys
    Port 7654
    IdentityFile ~/.ssh/targaryen.key

Host tyrell
    HostName 192.168.10.20

Host martell
    HostName 192.168.10.50

Host *ell
    user oberyn

Host * !martell
    LogLevel INFO

Host *
    User root
    Compression yes
  • 当您键入ssh targaryen时,ssh 客户端会读取文件并应用第一个匹配项中的选项,即Host targaryen. 然后它一个接一个地检查下一个节是否有匹配的模式。下一个匹配的是Host * !martell(表示除 之外的所有主机martell),它将应用此节中的连接选项。最后一个定义Host *也匹配,但 ssh 客户端将仅采用该Compression选项,因为该User选项已在Host targaryen节中定义。键入时使用的完整选项列表ssh targaryen如下:

    HostName 192.168.1.10
    User daenerys
    Port 7654
    IdentityFile ~/.ssh/targaryen.key
    LogLevel INFO
    Compression yes
    
  • 运行ssh tyrell匹配的主机模式时:Host tyrellHost *ell和. 在这种情况下使用的选项是:Host * !martell``Host *

    HostName 192.168.10.20
    User oberyn
    LogLevel INFO
    Compression yes
    
  • 如果您运行ssh martell,则匹配的主机模式是Host martellHost *ellHost *。在这种情况下使用的选项是:

    HostName 192.168.10.50
    User oberyn
    Compression yes
    
  • 对于所有其他连接,ssh 客户端将使用Host * !martellHost *部分中指定的选项。

 

3.SSH读取顺序

(1)从命令行指定的选项。 (2)~/.ssh/config中定义的选项。 (3)/etc/ssh/ssh_config中定义的选项。 如果要覆盖单个选项,可以在命令行上指定它。例如,如果您有以下定义:

Host dev
    HostName dev.example.com
    User john
    Port 2322

并且您想使用所有其他选项,但以用户身份连接,root而不是john简单地在命令行上指定用户:

ssh -o "User=root" dev

( -F)configfile选项允许您指定替代的每用户配置文件。 要告诉ssh客户端忽略 ssh 配置文件中指定的所有选项,请使用: ssh -F /dev/null user@example.com

4.dolphin连接ssh服务器

直接在地址栏输入sftp://HostName 即可,HostName可以为ssh配置文件中定义的内容。