Linux上实现ssh免密码登陆远程服务器

简介:

0.说明

 

    平常使用ssh登陆远程服务器时,都需要使用输入密码,希望可以实现通过密钥登陆而免除输入密码,从而可以为以后实现批量自动部署主机做好准备。

    环境如下:


IP地址 操作系统
服务器端 10.0.0.128/24 CentOS 6.5 x86
客户端 10.0.0.129/24 Ubuntu 16.04 x86




1.客户端生成密钥对


    生成密钥对:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
xpleaf@leaf:~$  ssh -keygen -t rsa -b 2048
Generating public /private  rsa key pair.
Enter  file  in  which  to save the key ( /home/xpleaf/ . ssh /id_rsa ): 
Created directory  '/home/xpleaf/.ssh' .
Enter passphrase (empty  for  no passphrase): 
Enter same passphrase again: 
Your identification has been saved  in  /home/xpleaf/ . ssh /id_rsa .
Your public key has been saved  in  /home/xpleaf/ . ssh /id_rsa .pub.
The key fingerprint is:
SHA256:eLssyXJLzUCfSN5mu6nqNH9dB /gOyXSvWBwQdNssIYE  xpleaf@leaf
The key's randomart image is:
+---[RSA 2048]----+
|         o=oo    |
|        E .o =   |
|      o    oo o  |
|     + = .o +.   |
|      = So = +   |
|       B o+ = o  |
|    o...=. * o   |
|   ..+=..+o o    |
|   .o++==        |
+----[SHA256]-----+

    查看生成的密钥对:

1
2
3
4
xpleaf@leaf:~$  ls  . ssh
id_rsa  id_rsa.pub
 
# id_rsa为私钥,这个一般需要保密;id_rsa.pub为公钥,这个可以公开。




2.上传公钥到服务器端


   使用scp命令操作:

1
2
3
4
5
6
7
xpleaf@leaf:~$  scp  . ssh /id_rsa .pub root@10.0.0.128: /root
The authenticity of host  '10.0.0.128 (10.0.0.128)'  can't be established.
RSA key fingerprint is SHA256:0Tpm11wruaQXyvOfEB1maIkEwxmjT2AklWb198Vrln0.
Are you sure you want to  continue  connecting ( yes /no )?  yes
Warning: Permanently added  '10.0.0.128'  (RSA) to the list of known hosts.
root@10.0.0.128's password: 
id_rsa.pub                                                    100%  393     0.4KB /s    00:00

 



3.服务器端操作


    把从客户端传来的公钥添加到.ssh/authorized_keys中:

1
2
3
4
[root@leaf ~] # cat id_rsa.pub >> .ssh/authorized_keys
[root@leaf ~] # chmod 600 .ssh/authorized_keys
 
# authorized_keys的权限需要为600

    修改ssh配置文件/etc/ssh/sshd_config,找到下面一行:

1
PubkeyAuthentication no

    修改为:

1
PubkeyAuthentication  yes




4.测试


    在客户端上使用密钥登陆到服务器上:

1
2
3
xpleaf@leaf:~$  ssh  -i . ssh /id_rsa  root@10.0.0.128
Last login: Tue May  9 15:14:01 2017 from 10.0.0.129
[root@leaf ~] #




5.注意事项


  • 在服务器端需要把selinux关闭,否则最后无法使用密钥进行远程登陆;

  • 客户端使用scp命令时,在服务器端也需要安装ssh客户端,否则无法把公钥上传到服务器端,另外也可以使用ssh-copy-id root@10.0.0.128来代替scp操作(这样在服务器端也不需要执行创建.ssh目录等这些操作,即相当于该命令可以一步帮我们完成密钥的上传与配置工作);




本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1924771,如需转载请自行联系原作者
相关文章
|
3月前
|
弹性计算 Linux 网络安全
阿里云服务器怎么登陆,常见登陆方式教程参考
在连接实例时,首先需要完成身份验证,确保只有授权用户能够访问和管理服务器资源,以增强安全性。创建实例时,您可以选择一个系统预设的用户作为初始登陆用户。实例创建完成后,即可用该用户身份登陆。本文将详细介绍不同用户的特点与区别,以及如何管理这些用户和添加额外的远程连接用户。
896 12
|
6月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
567 59
|
4月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
5月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
156 2
|
5月前
|
网络安全
Ubuntu14.04安装ssh服务器
Ubuntu14.04安装ssh服务器
94 0
|
7月前
|
Shell 网络安全 数据安全/隐私保护
使用 Python 远程登陆服务器的最佳实践
使用 Python 远程登陆服务器的最佳实践
61 5
|
7月前
|
网络安全 数据安全/隐私保护
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
1784 0
|
7月前
|
Linux 网络安全
Linux开启ssh
Linux开启ssh
70 0
|
10月前
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
118 1
|
监控 数据可视化 安全
Linux——怎样使用SSH服务实现远程UI界面本地显示
需求场景 最近几天需要实现软件的远程监控,但是实际场景又不能使用向日葵、VNC、AnyDesk、以及其他的监视软件,并且软件的整体设计也没有这块的数据上行设计。
672 0