Terminal 免密连接服务器

本文详细介绍如何使用SSH-keygen生成公钥私钥对,配置本地服务器信息,修改服务器SSH连接许可,以及将本地公钥添加到服务器授权列表中,实现SSH连接服务器时的免密码登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般连接服务器都会借助类似 SecureCRT 这一类的连接工具,因为可以记住密码,那么如果想用 Terminal 连接服务器,同时又不想输入密码应该如何操作

更多精彩

相关网址

  1. SSH连接服务器+让服务器记住密码及IP - sunyao_123的博客 - CSDN博客
    • 具体内容是从这边博客学到的,不过里面写的有点乱,而且有一个点写错了

实现方式

在本地生成公钥秘钥

  1. 在终端输入 ssh-keygen -t rsa 即可根据提示生成本地公钥密码,如下图
    • Enter passphrase 提示输入的密码用于加密公钥秘钥
    • 如果输入了密码,在配置好连接方式后,对服务器发起连接请求时,虽然不会提示输入服务器密码,但会需要输入此密码
    • 如果直接跳过,不输入密码,对服务器发起连接请求时,则可以直接连接,不需要输入任何密码

在本地配置服务器信息

  1. 根据上图提示可以知道公钥密码生成后存放的目录是 /Users/asing1elife/.ssh/id_rsa ,如下图
    • asing1elife 是自己的用户文件夹名称
  2. 前往上述目录,输入 vi config 编辑待连接的服务器配置,如下图
    • Host 是服务器名称,如果你想通过输入 ssh testServer 就直接连接服务器,那么这里的名称就应该输入 testServer ,我这里为了保持服务器信息的明确区分,直接使用的 IP
    • HostName 是服务器 IP 地址
    • User 是进行服务器连接的服务器用户
    • Port 服务器端口号
    • IdentityFile 之前生成的本地秘钥存放路径,前面参考的文档中这个地方就写错了

前往服务器打开 RSA 连接许可

  1. 登录服务器,输入 vi /etc/ssh/sshd_config ,编辑服务器 SSH 连接配置文件,找到下图中的内容
    • 前三个选项默认是被注释掉的,删掉注释即可打开配置

将本地公钥内容添加到服务器的公钥列表中

  1. 在本地终端中输入以下内容,可将本地公钥内容传输到服务器的公钥列表中
    • 这里输入目录结构的是,没有提示,需要完全手工输入
    • authorized_keys 不是目录,而是一个文件
scp /Users/asing1elife/.ssh/id_rsa.pub root@192.168.7.8:~/.ssh/authorized_keys
  1. 传输完成后登录服务器,输入 cat ~/.ssh/authorized_keys 就可以看到里面有公钥内容,说明配置已经完成了
  2. 现在再本地终端中输入 ssh 192.168.7.8 就可以直接登录指定服务器
    • 如果之前的配置中有配置 passphrase ,则会提示输入该密码,注意这里要求的不是服务器密码,而是之前自己配置的公钥秘钥密码
### XTerminal 远程连接配置方法 XTerminal 是一款支持 SSH 协议的终端模拟器,允许用户通过网络远程连接Linux/Unix 服务器。其配置方法与标准的 SSH 配置方式相似,可以通过图形界面或手动编辑配置文件来实现。 #### 基本配置步骤 1. **添加新连接** 打开 XTerminal 后,在连接管理界面中选择“新建连接”或“添加主机”。输入以下信息: - **主机名(HostName)**:目标服务器的 IP 地址或域名。 - **端口(Port)**:SSH 服务监听的端口号,默认为 `22`。 - **用户名(User)**:用于登录服务器的账户名。 - **认证方式**:可以选择码认证或钥认证。若使用钥认证,需指定私钥文件路径。 2. **使用别名(Host)** 在连接设置中可以定义一个别名(Host),例如 `myserver`,这样在后续连接时只需输入 `ssh myserver` 而不必重复输入完整的 `username@hostname` 格式。 3. **代理跳转(ProxyCommand)配置** 如果需要通过中间跳板机连接内网服务器,可在高级设置中配置 `ProxyCommand` 指令。例如: ```bash ProxyCommand ssh -W %h:%p jump_host ``` 此配置表示先连接到 `jump_host`,再通过该主机转发连接至目标主机[^2]。 4. **自动登录与公钥配置** 为了实现无登录,可生成 SSH 钥对,并将公钥上传至服务器的 `~/.ssh/authorized_keys` 文件中。具体操作如下: - 在本地执行 `ssh-keygen` 生成钥对。 - 将 `id_rsa.pub` 文件内容追加到服务器端的 `~/.ssh/authorized_keys` 中。 - 配置完成后即可实现登录。 5. **防止连接超时** 为了避长时间不操作导致连接断开,可以在 SSH 客户端配置文件中添加心跳机制: ```bash Host * ServerAliveInterval 40 ``` 此配置会每隔 40 秒向服务器发送一次心跳包,保持连接活跃状态[^3]。 6. **保存与连接** 完成上述配置后,保存连接信息并点击连接按钮,即可通过 XTerminal 登录远程服务器。 #### 示例配置文件 如果选择手动编辑 SSH 配置文件(通常位于 `~/.ssh/config`),可以按照如下格式添加条目: ```bash Host myserver HostName 192.168.0.10 Port 22 User lyfeng IdentityFile ~/.ssh/id_rsa ProxyCommand ssh -W %h:%p jump_host ``` 此配置表示连接 `myserver` 时,通过 `jump_host` 跳转至内网地址 `192.168.0.10`,并使用指定的私钥进行身份验证[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值