SSH无密码登录:只需两个简单步骤 (Linux)

admin11个月前笔记111

如果你管理一台Linux服务器,那么你就会知道每次SSH登录时或者使用scp复制文件时都要输入密码是一个多么繁琐的过程.这篇教程介绍使用SSH Key来实现SSH无密码登录,而且使用scp复制文件时也不需要再输入密码.除了方便SSH登录,scp复制文件外,SSH无密码登录也为Linux服务器增加了又一道安全防线

SSH无密码登录的设置步骤

  1. 首先我们在自己的Linux系统上生成一对SSH Key:SSH密钥和SSH公钥.密钥保存在自己的Linux系统上。

  2. 然后公钥上传到Linux服务器.之后我们就能无密码SSH登录了.SSH密钥就好比是你的身份证明.

1在自己的Linux系统上生成SSH密钥和公钥

打开终端,使用下面的ssh-keygen来生成RSA密钥和公钥.-t表示type,就是说要生成RSA加密的钥匙.

ssh-keygen -t rsa

RSA也是默认的加密类型.所以你也可以只输入ssh-keygen.默认的RSA长度是2048位.如果你非常注重安全,那么可以指定4096位的长度.

ssh-keygen -b 4096 -t rsa

生成SSH Key的过程中会要求你指定一个文件来保存密钥,按Enter键使用默认的文件就行了.然后需要输入一个密码来加密你的SSH Key.密码至少要20位长度.SSH密钥会保存在home目录下的.ssh/id_rsa文件中.SSH公钥保存在.ssh/id_rsa.pub文件中.

Generating public/private rsa key pair.Enter file in which to save the key (/home/matrix/.ssh/id_rsa):  按Enter键Enter passphrase (empty for no passphrase):   输入一个密码Enter same passphrase again:   再次输入密码Your identification has been saved in /home/matrix/.ssh/id_rsa.
Your public key has been saved in /home/matrix/.ssh/id_rsa.pub.
The key fingerprint is:
e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 matrix@vivid
The key's randomart image is:
+---[RSA 4096]----+
| .. |
| . . |
| . . .. . |
| . . o o.. E .|
| o S ..o ...|
| = ..+...|
| o . . .o .|
| .o . |
| .++o |
+-----------------+

查看.ssh/id_rsa文件就会看到,这个文件是经过加密的(encrypted).也就是用你输入的密码来加密.

less .ssh/id_rsa

image.png

2将SSH公钥上传到Linux服务器

可以使用ssh-copy-id命令来完成.

ssh-copy-id username@remote-server

image.png

输入远程用户的密码后,SSH公钥就会自动上传了.SSH公钥保存在远程Linux服务器的.ssh/authorized_keys文件中.

上传完成后,SSH登录就不需要再次输入密码了.但是首次使用SSH Key登录时需要输入一次SSH密钥的加密密码.(只需要输入一次,将来会自动登录,不再需要输入密钥的密码.)

使用scp命令来传送文件时也不需要输入密码.

SSH Key的知识

Linux系统有一个钥匙环(keyring)的管理程序.钥匙环受到用户登录密码的保护.当你登录Linux系统时,会自动解开钥匙环的密码,从而可访问钥匙环.SSH密钥的密码也可存储在钥匙环.所以初次使用SSH密钥登录远程Linux服务器时需要输入一次SSH密钥的密码.而将来使用SSH密钥登录时不再输入密码.Ubuntu的钥匙环程序是seahorse.

SSH密钥就好比是你的身份证明.远程Linux服务器用你生成的SSH公钥来加密一条消息,而只有你的SSH密钥可以解开这条消息.所以其他人如果没有你的SSH密钥,是无法解开加密消息的,从而也就无法登录你的Linux服务器.

SSH无密码登录的设置就是这么简单。


相关文章

如何在 MariaDB 中配置主从复制

如何在 MariaDB 服务器上配置一个主从复制。复制是用于为我们的数据库创建多个副本,这些副本可以在其它数据库上用于运行查询,像一些非常繁重的查询可能会影响主数据库服务器的性能,或者我们可以使用它来...

视频流服务器有哪些(目前最好用的流媒体服务器)

视频流服务器有哪些(目前最好用的流媒体服务器)

1、视频流服务器有哪些视频流服务器是一种用于处理和分发视频流的服务器。它们通常用于在互联网上提供流媒体服务,如实时视频直播和点播等。以下是一些常用的视频流服务器:1. Wowza ...

mysql/mariadb:数据库用户管理语句

mysql/mariadb:数据库用户管理语句

在了解mysql的用户管理语句之前,先来了解一下mysql的用户账号格式,如下:username@host上述格式表示,username对应的用户能够通过哪个host登录mysql。host:此mys...

linux下把进程绑定到特定cpu核上运行

对于普通的应用,操作系统的默认调度机制是没有问题的。但是,当某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独的核上运行,以减小由于在不同的核上调度造成的开销。把某个进程/线程绑定到特定的cpu...

怎样在 Linux 命令行中切换用户

怎样在 Linux 命令行中切换用户

Linux 系统有不同类型的用户,用户有不同类型的权限。并非所有用户都可以执行所有命令,也不是所有用户都可以切换到其他用户。我们今天要介绍的内容就是如何在命令行中切换到其他用户。要切换用户,...

看完这篇文章,还不懂nginx,算我输

看完这篇文章,还不懂nginx,算我输

1. Nginx产生~Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。