美文网首页我用 LinuxLinuxLinux学习之路
ssh 使用 RSA 密钥完成免密码登录

ssh 使用 RSA 密钥完成免密码登录

作者: rollingstarky | 来源:发表于2018-03-11 23:08 被阅读749次

大多数 Linux 服务器并不包含完善的用户界面,很多时候也并非安装在本地机器上。而是使用 SSH 远程登录的方式来完成对服务器的控制。
SSH(Secure Shell)提供两种级别的验证方式。第一种是基于口令的验证,即使用自己的用户名和密码登录远程机器。
第二种是基于密钥的验证,即先在本地机器上创建一对密钥(公钥私钥),将公钥上传到远程服务器,登录时通过对比客户端与远程端的密钥来进行验证。
基于密钥的验证是不需要在网络上传输口令的,相对而言更加安全。

Linux 上的 ssh 服务器可以使用 openssh ,使用软件包管理器直接安装即可:
$ sudo apt-get install openssh-server

使用密钥进行远程登录还可以实现自动登录(不需要输入密码),以下为详细配置过程。

一、在本地机器上创建密钥

$ ssh-keygen -t rsa -C 'email@domain.com'
-t 选项用来指定密钥类型,默认即为 rsa;-C 选项用来提供说明文字
命令执行成功后会在 ~/.ssh 目录下分别创建公钥(默认为 id_rsa.pub)和私钥(默认为 id_rsa)文件

ssh 创建密钥
二、将公钥上传至服务器

这一步需要将本地生成的公钥文件(id_rsa.pub)内容添加到服务器上的 ~/.ssh/authorized_keys 文件中。

可使用 scp 命令完成远程复制:

$ scp ~/.ssh/id_rsa.pub username@hostname:~/    # 将公钥文件上传至服务器用户主目录
$ ssh username@hostname    # 使用用户名和密码登录至服务器
$ mkdir .ssh    # 在远程服务器上创建 .ssh 目录
$ cat id_rsa.pub >> ~/.ssh/authorized_keys    # 将公钥文件内容追加到authorized_keys文件末尾
scp 上传公钥

上面我使用的是 virtualbox 虚拟机安装的 ubuntu 16.04 Server,利用 NAT 的端口转发将宿主机的 8022 端口映射到了虚拟机的 22 端口。-P 8022 用于指定端口号

修改 authorized_keys 文件
以上步骤完成后就可以通过 ssh username@hostname 命令直接登录远程主机。 登录成功界面
三、配置登录别名

可以通过在本地机器上的 ~/.ssh/config 文件中定义别名,然后使用 ssh <alias> 命令即可直接登录远程服务器。
该文件格式如下:

Host        alias    # 自定义别名
HostName    hostname    # 服务器地址
Port        port    # 远程 ssh 服务的端口号,默认为22
User        user    # 用户名
IdentityFile    ~/.ssh/id_rsa    # 本地公钥文件位置
配置登录别名
登录效果: 使用别名登录

针对第二步中上传密钥的操作,还可以使用此命令:
$ cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

ssh 上传密钥
附:配置 github 账号时也需要用到生成密钥的操作,可以参考上面的 ssh-keygen 命令

相关文章

  • ssh 使用 RSA 密钥完成免密码登录

    大多数 Linux 服务器并不包含完善的用户界面,很多时候也并非安装在本地机器上。而是使用 SSH 远程登录的方式...

  • VMWare虚拟机实例之间配置无密码登录

    使用 ssh-keygen -t rsa -f ~/.ssh/id_rsa 创建密钥对 虚拟机之间SSH无密码登录...

  • 连接远程vps+配置环境记录

    在terminal 使用密码登录服务器 ssh-keygen生成密钥对scp ~/.ssh/id_rsa.serv...

  • linux ssh 免密登录设置

    免密登录设置 一般情况下ssh登录远程机器需要输入密码,可以设置免密登录 ssh-keygen -t rsa命令一...

  • ssh 应用

    ssh 介绍 我为什么用: 免密码登录服务器 免密码提交 git 一、ssh 密钥对生成 确认存放目录、加密后,密...

  • ssh 免密登陆

    密码登录原理: 首先我们来看一下传统的ssh 密码登录的具体过程: 密钥登录原理: ssh 免密登陆实战 实验说明...

  • SSH免密码登陆

    ssh免密码登陆 生成密钥公钥命令:ssh-keygen -t rsa位置是当前目录 生成内容公钥:.ssh/id...

  • SSH 相关的配置操作

    SSH 免密码登录 这里即A机想通过ssh免密码登录到B机。ssh 无密码登录需要使用到公钥和私钥。一般是在A机上...

  • ssh和scp使用

    ssh客户端基本使用 scp使用 ssh免密码登录 ssh配置别名

  • SSHKEY免密码登陆

    通过SSHKEY实现免密码登录 1、生成密钥 生成id_rsa(私钥)和id_rsa.pub(公钥文件) 2、上传...

网友评论

    本文标题:ssh 使用 RSA 密钥完成免密码登录

    本文链接:https://www.haomeiwen.com/subject/iewufftx.html