Linux使用ssh免登录设置方法

发布 : 2018-06-15 分类 : Linux 维护 浏览 :

简介

在开发或对Linux远程主机管理是经常需要用到ssh和scp命令,但每次都需要输入密码,实在是太过麻烦。于是从网上找了些方法,实现了免密码登录和拷贝文件。参考方法 其实所谓的免密码就是从验证密码的登录方式,改为公私钥对的登录验证方式。使用后者的方式,每次会由ssh客户端自动发送验证信息,所以就免去了人工输入密码。

环境介绍

本机: Mac OS 10.12.1 服务器: CentOS6\CentOS7 注: 这个方法应该是通用的,对Linux没有什么版本限制,如果大家遇到版本限制可以在讨论区指出。

实现方法

生成密匙

执行命令:

ssh-keygen -t rsa
执行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
charles@mac:~ > ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/charles/.ssh/id_rsa):
Created directory ‘/Users/charles/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/charles/.ssh/id_rsa.
Your public key has been saved in /Users/charles/.ssh/id_rsa.pub.
The key fingerprint is:
c8:4b:85:87:90:7c:1
kdy....... charles@TCMBP.local
The key’s randomart image is:
+–[ RSA 2048]—-+
| … .. o=.. |
| +.*o. …+ |
| Bo+o. o.. |
| …+E o |
| + S |
| . . |
| . |
| |
| |
+—————–+

注:输入命令后会提示输入密钥保护密码,这时直接按回车忽略即可,否则会在每次验证密钥的时候,要求输入密码。 执行完以上命令之后在主目录下的.ssh/ 中会看到 id_rsa和id_rsa.pub,前者是私钥,后者是公钥。

将公钥拷贝到目标主机

生成密钥之后,使用scp将id_rsa.pub文件拷贝到远程主机的主目录下的:.ssh/下。(如果没有该文件需要先创建)
例子:
scp ~/.ssh/id_rsa.pub username@192.168.9.11:~/.ssh/

之后使用ssh登录远程主机,进入.ssh目录,首先创建authorized_keys文件,并执行如下命令:

touch authorized_keys cat id_rsa.pub >> authorized_keys

注:以上命令的第一条命令创建了一个新文件authrized_keys,在执行之前请务必查看是否有该文件。如果有说明有电脑将将公钥导入了该文件。这时你只需直接执行第二条命令即可。 如果.ssh文件是刚创建的。还需执行以下命令修改权限

chmod 0700 ~/.ssh

以上命令将.ssh修改为只有当前用户可进行读写进入,这时出于安全考虑还需将.ssh下的文件进行修改权限

chmod 0600 ~/.ssh/*

至此以全部设置完毕,退出远程主机重新连接时以无需输入密码。

本文作者 : Lojze
原文链接 : http://blog.flowlore.com/passages/linux-ssh-login/
版权声明 : 版权声明: 本博客所有文章除特别声明外, 均采用 CC BY-NC-SA 4.0 许可协议. 转载请注明出自《舍予书》
留下足迹