ssh无密码登陆(代码片段)

luruiyuan luruiyuan     2022-12-14     343

关键词:

本文引用自:Linux大神博客的博文 

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

如果你管理一台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文件中.

 1 Generating public/private rsa key pair.
 2 Enter file in which to save the key (/home/matrix/.ssh/id_rsa):  按Enter键
 3 Enter passphrase (empty for no passphrase):   输入一个密码
 4 Enter same passphrase again:   再次输入密码
 5 Your identification has been saved in /home/matrix/.ssh/id_rsa.
 6 Your public key has been saved in /home/matrix/.ssh/id_rsa.pub.
 7 The key fingerprint is:
 8 e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 [email protected]
 9 The keys randomart image is:
10 +---[RSA 4096]----+
11 | .. |
12 | . . |
13 | . . .. . |
14 | . . o o.. E .|
15 | o S ..o ...|
16 | = ..+...|
17 | o . . .o .|
18 | .o . |
19 | .++o |
20 +-----------------+

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

less .ssh/id_rsa

技术图片

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

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

ssh-copy-id [email protected]

技术图片

输入远程用户的密码后,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无密码登录的设置就是这么简单。

配置ssh无密码登陆

...sp;系统可以执行sudoapt-getinstallssh接下来开始配置 ssh无密码登陆确保在 /home/user用户目录下存在.ssh目录,可以使用一下命令进行查看ls-a/home/user如果不存在可以自己手动创建一个mkdir/home/user/.ssh接下来没 查看详情

ssh无密码登陆

1.生成sshkeyssh-keygen生成一对sshkey,包括一个publickey和一个privatekey。  2.部署publickey 到服务器vimauthorized_keys    查看详情

ssh登陆强制使用密码验证登陆(代码片段)

   Linux系统使用ssh进行登陆,可以采用密码登陆和秘钥登陆。采用密码登陆每次需要输入密码进行验证,验证通过则可登陆到环境。  秘钥登陆为在服务器的客户端生成相应的公钥和私钥,公钥用于加密,私钥用于解密... 查看详情

2.ssh密钥登陆(ssh无密码登陆)

1、A主机生成密钥对ssh-keygen -t rsa2、将A主机的公钥发给B主机scp id_rsa.pub linux2:/cloud                  &nb 查看详情

ssh安全登陆原理:密码登陆与公钥登陆(代码片段)

...比较成熟的远程登陆解决方案。它提供两种方法登陆:1.密码登陆2.公钥登陆 密码登陆 1.客户端填写用户名密码发起远程登陆2.远端服务器收到登陆请求后,会将本地的一个公钥发送给客户端3.客户端收到公钥后,将自己... 查看详情

自定义pam登陆验证方式后,xftp工具使用无响应(代码片段)

继前几天的文章,linux密码登陆时加入自己登陆验证模块(pam),继续发布此文章。按照“linux密码登陆时加入自己登陆验证模块(pam)”配置后,使用xshell进行ssh登陆很顺利,然后xftp登陆却不顺利,密码验证通过后,xftp工具无... 查看详情

解决ssh配置无密码登陆后再次出现请求输入密码的情况

http://inuyasha1027.blog.51cto.com/4003695/1132896/主机ip:192.168.163.100(hostname:node0)ssh无密码登陆的远程机ip:192.168.163.101(hostname:node1) 首先要修改主机和ssh连接到的远程机的配置文件: vi /etc/ssh/sshd_config(要确 查看详情

centos下ssh配置无密码登录(代码片段)

...#xff1a;sudoapt-getinstallssh启动SSH服务:servicesshdrestartSSH无密码登录的原理如下假设A机器想要通过SSH无密码登录访问B机器,则需要在A机器上生成一对秘钥(公钥+私钥),而后将公钥复制到B机器上;当A机 查看详情

配置ssh无密码登录时,sshlocalhost登陆本机时输入密码错误,显示permissiondenied,怎么解决?

参考技术A无密码确认公钥是否传给服务器 查看详情

ssh免ip密码登陆远程服务器设置(代码片段)

terminal终端直接输入sshhw1即可免IP和密码登陆至远程服务器。首先,编辑vim~/.ssh/config按下面格式将登陆的用户名和IP添加到~/.ssh/config文件中。Hosthw1HostName124.77.201.17UserrootHosthw1HostName123.66.77.25Userroot终端输入如下指令生成ssh公钥... 查看详情

putty无密码登陆

1、打开puttygen.exe,点击Generate,然后按照说明用鼠标在空白处移动,生成密钥对。 2、保存私钥,不填passphrase。同时保存公钥,并打开公钥文件,将回车符去掉。 3、将公钥上传到要登录的服务器的相关用户的home目录下... 查看详情

windows下通过ssh无密码连接linux服务器(代码片段)

...讯云CentOS7.2(64位)3、SSH连接软件:Xshell5二、配置SSH无密码登录步骤1、在个人PC机产生公钥和私钥2、将产生的公钥上传到服务器,将公钥导入到认证文件,更改权限3、通过Xshell5导入私钥,进行SSH连接三、前期准备1、新创建的Lin... 查看详情

centos密钥登陆(代码片段)

服务端生成密钥和公钥ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):Enterpassphrase(emptyfornopassphrase):#注意这里,如果设置了密码,那么登陆的时候也要输入这个密码Entersamepassphraseagain: 查看详情

学习笔记hadoop——hadoop集群的安装与部署——配置ssh无密码登录(代码片段)

三、配置ssh无密码登录3.1、SSHSSH为SecureShell的缩写,由IETF的网络小组(NetworkWorkingGroup)所制定;SSH为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用S... 查看详情

配置master无密码登陆所有的slave

1.SSH无密码原理master(NameNode|JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器salve(DataNode|Tasktracker)上时,需要在master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的slave上。当master通过SSH... 查看详情

使用expect实现ssh免密码登陆(代码片段)

使用expect向ip列表文件中的ip主机,执行ssh-copy-id命令复制密钥,以实现ssh免密登陆。安装expectyuminstall-yexpect生成密钥对ssh-keygen-trsa-P‘‘-f~/.ssh/id_rsa脚本//shell脚本内容#-------------------------vimssh-copy-id.sh#!/bin/bash#[$#-gt0-a-f"$1"]||exit1cat... 查看详情

无密钥登陆

服务器A,BA要免密码登陆B1:在A上执行ssh-keygen2:进入.ssh文件找到生成的公钥id_rsa.pub,复制到B服务器的/root/.ssh/authorized_keys里面3:在B上面启动服务/bin/systemctlstartsshd.service   查看详情

ssh免密登陆(代码片段)

... 命令重启了SSH服务,但当执行ssh登录命令时仍然需要密码。 解决方案一、查看系统安全日志,定位问题 查看详情