关于 DreamCat

主题名称:DreamCat | 版本:3.0.240224

主题开发:HanFengA7 | CornWorld

Designed by HanFengA7 Power by Typecho

Copyright © 2015-2024 by LychApe All rights reserved!

menu
refresh

Ubuntu配置ssh密钥登录

作者: ciaoℒy

时间:

Linux的ssh常用的登录格式是这样的

ssh [-p port] user@remotehost

这样子每次都得输入密码, 当然这样子密码就不容易忘记了(呵呵).


本文参考

1. 创建密钥

使用密钥登录需要先创建一对非对称加密的密钥, 使用ubuntu自带的 ssh-keygen 密钥生成工具即可生成

ssh-keygen -t rsa

控制台会按照以下顺序来与用户交互以完成密钥的生成工作:

  1. 密钥对存储目录(默认在~/.ssh/目录下的id_rsa文件)
  2. 私钥的加密口令(此口令用来保护私钥以防止它被别人窃取后滥用)

2. 将公钥上传到服务器

可以使用 scp 命令上传公钥, 当然Ubuntu提供了一个工具用来上传公钥并自动完成相应配置 使用 ssh-copy-id :

ssh-copy-id [-i identity_file] [-p port] user@remotehost

上传完成后登录到服务器并检查其 ~/.ssh/authorized_keys 文件是否有重复密钥添加在其中 另者, authorized_key文件的权限必须只限其拥有者读写(权限 600)

3. 在本地将私钥文件添加到ssh-agent

如果没有将私钥添加到ssh-agent, 那么会报以下错误:

sign_and_send_pubkey: signing failed: agent refused operation

操作方法如下, 首先在当前bash进入 ssh-agent 环境

ssh-agent bash

然后使用 ssh-add 添加私钥到ssh-agent

ssh-add [private_key_file]

4. 配置(绑定)IP、用户名和端口

即使是配置了密钥对, 在使用ssh登录时依然需要附加端口号和用户名(当然, 默认端口22和用户名重名的情况下就不需要了). 使用以下方法将ip/用户名/端口预先配置(绑定)好

vim ~/.ssh/config

将以下信息写入配置文件

Host "remote ip"
User "username"
Port "port" 

完成了以上操作, 就可以简单地使用以下命令登录服务器啦.

ssh remote_host

补充. 根据ssh的手册, 其实可以跳过第三步, 直接在config里添加IdentityFile指定私钥就可以

Host "remote ip"
User "username"
Port "port" 
IdentityFile ~/.ssh/id_rsa

#本文链接:https://blog.chaol.top/archives/13.html
#本文采用 CC BY-NC-SA 4.0 协议进行许可
#如无特别声明,该文章均为 ciaoℒy 原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0)协议,即转载请注明文章来源。
#最后编辑时间为: 2022 年 10 月 22 日
none

create 添加新评论


account_circle
email
language
textsms



加我的QQ
加我的微博
加我的支付宝
加我的微信