登陆服务器老是输入密码,了解一下免密登陆吧

Linux 免密登陆

咱们登陆服务器,无论你是经过ssh,仍是经过工具登陆,老是须要输入用户名和密码,频繁操做太浪费时间了,这个时候就要了解一下免密登陆了。java

下面主要给你们介绍一下免密登陆的步骤,跟着操做基本就能够配置成功了,后续就能够直接登陆服务器,不须要输入密码了。node

1. 生成秘钥对

首先咱们须要在本身的本机上生成秘钥对,在任何一个文件夹中均可以,可是最好在本身 home 目录下中的 .ssh 文件夹中进行,这样就能够省掉后续将生成秘钥对移动到这个文件夹的操做。linux

在 mac 上能够经过 cd ~/.ssh 进入该文件夹,window 的用户自行搜索吧。bash

进入文件夹以后,经过一下命令生成秘钥对:服务器

ssh-keygen -t rsa -C "你本身的名字" -f "你本身的名字_rsa"
复制代码

生成以后,你会发现多了两个文件,一个是你本身的名字_rsa,一个是你本身的名字_rsa.pub,带 pub 的是公钥,后续须要放到服务器上,不带 pub 的是秘钥,须要放到 home/.ssh下,若是上面你已经进入到这个文件夹中,那咱们不须要移动就能够了,能够直接跳过第二步,进行第三步的操做。若是没进入这个文件夹,那咱们就接着往下操做配置本地秘钥。ssh

2. 配置本地秘钥

若是第一步中你是进入本机 home 目录下的 .ssh/ 文件夹执行的,那能够直接跨过这一步,若是不是,须要按照说明执行这一步。工具

把第一步生成的秘钥复制到你的 home 目录下的.ssh/ 路径下。能够经过 mv XX_rsa ~/.ssh 命令,将生成的 XX_rsa 文件进行移动。spa

若是遇到问题,仍是同样,可能权限不够,须要将你的秘钥文件访问权限设置为 600。命令行

chmod 600 你的秘钥文件名
复制代码

3. 上传配置公钥

生成秘钥对以后,咱们须要将公钥上传到服务器对应帐号的 home 路径下的.ssh/中,经过如下命令便可。code

ssh-copy-id -i "公钥文件名" 用户名@服务器ip或域名
复制代码

输入完成以后须要输入服务器密码

上传完成以后,登陆指定的服务器,进入到指定用户名下的 .ssh 文件夹以后,你会发现,其中有两个文件:

经过 cat authorized_keys,会发现 authorized_keys 中已经存在你的公钥了。

若是在中途遇到问题的话,咱们能够登陆服务器,将配置公钥文件 authorized_keys 访问权限设置为 600,而后再执行上面将公钥上传服务器的指令就能够了。

经过如下命令能够修改权限:

chmod 600 authorized_keys
复制代码

4. 配置本地免密配置文件

秘钥对配置好以后,咱们须要修改本地的免密配置文件。

编辑本身 home 目录下的 .ssh/ 路径下的 config 文件,首先须要将 config 文件的访问权限设置为 644。

其次经过 vi 对配置文件进行操做。配置文件中能够配置多主机配置和单主机配置。多主机配置就是能够经过一个秘钥访问多个 linux 服务器,单主机的意思就不言而喻了,一个秘钥访问一个 linux 服务器。

配置方式以下:

# 多主机配置
# 免密配置完成以后经过host机型登陆,ssh 具体的Host
Host java-produce
# 须要绑定到那个ip的linux服务器下
HostName IP或绑定的域名
# 端口号
Port 22
# 下面是另一个主机的配置
Host node-produce
HostName IP或绑定的域名
Port 22

# 上面主机的配置中凡是Host以-produce结尾的,都走下面的秘钥
Host *-produce
# 登陆的用户
User root
# 具体哪一个秘钥文件,你本机的
IdentityFile ~/.ssh/produce_key_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO

# 单主机配置,具体某个字段什么意思和上面多主机同样
# 只不过不须要将主机和秘钥的配置分开,一块儿配置就行
Host evil-cloud
User root
HostName IP或绑定的域名
IdentityFile ~/.ssh/produce_key_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO
复制代码

配置完 config 文件以后,试一下在命令行输入

ssh 配置的Host名称 # 好比上面我配置的 java-produce
复制代码

就能够直接访问具体的服务器了,不须要输入密码的哦。

阅读完后两部曲

  1. 喜欢的小伙伴点个赞吧,感受对身边人有帮助的,麻烦动动手指,分享一下。很是感谢各位花时间阅读完,同时很感谢各位的点赞和分享。
  2. 但愿各位关注一下个人公众号吧,新的文章第一时间发到公众号,公众号主要发一些我的随笔、读书笔记、还有一些技术热点和实时热点,而且还有很是吸引人的我我的自费抽奖活动哦~

相关文章
相关标签/搜索