ciaoly
Ubuntu配置ssh密钥登录

access_time
brush 413个字
whatshot 26 ℃

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

#如无特别声明,该文章均为 ciaoly 原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。
#最后编辑时间为: 2019 年 10 月 12 日


create 添加新评论


account_circle
email
language
textsms





关于 DreamCat

主题名称:DreamCat | 版本:X2.6.220211

主题开发:HanFengA7 | TeddyNight | Dev-Leo | CornWorld | WhiteBearcn | DFFZMXJ

Designed by HanFengA7 Power by Typecho

Copyright © 2015-2022 by LychApe All rights reserved!

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