使用RSA公钥实现无密码远程登陆另一台机器

在Linux 系统下,可以使用ssh客户端远程登陆到另一台Linux系统的机器,正常情况下每次在输入远程登陆命令后,都会强制要求输入远程机器的用户登陆密码,就很烦,如果将本地用户的公钥传给远程用户就可以不需要输入登录密码即可登陆,具体做法如下:

首先假定有两个用户:本地用户python和远程登陆用户seeker,要实现用户python通过ssh客户端无密码连接seeker,首先需要生成seeker用户的RSA公钥和私钥,具体做法如下:

在python用户打开终端输入命令:

python@python:~$ ssh-keygen

ENTER >>:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/python/.ssh/id_rsa):

ENTER >>:

Enter passphrase (empty for no passphrase):

ENTER >>:

Enter same passphraseCD again: 

ENTER >>:

Your identification has been saved in /home/python/.ssh/id_rsa.
Your public key has been saved in /home/python/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Nl1+ivOkNggbOs6gr6E/5nF4MAXrStEkUxtz3+Qu22Y python@python-virtual-machine
The key`s randomart image is:
+---[RSA 2048]----+
| oo= .   .       |
|  =o= . +        |
| ..o.  . o  .    |
| ...    ..o      |
| .+    .S.. . .  |
|.. +  o.+. . o   |
|o + o. = Eo o    |
|.oo*o . + o=     |
|+*+oo.   ....    |
+----[SHA256]-----+

python 用户的RSA 公钥和私钥已经生成

公钥和私钥存放位置分别为:

私钥: /home/python/.ssh/id_rsa.
公钥: /home/python/.ssh/id_rsa.pub.

生成本地用户python的公钥后,就可以将该公钥发送给seeker用户,在终端执行命令:

python@python:~ $ cd .ssh

切换到 .ssh目录下,因为公钥和私钥都在该目录下

python@python:~/.ssh $ ssh-copy-id  seeker@10.0.0.106

向远程用户seeker发送公钥

ENTER >>:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys
seeker@10.0.0.106`s password: ********  #输入远程用户密码

ENTER>>:

Number of key(s) added: 2

Now try logging into the machine, with:   “ssh  ‘seeker@10.0.0.106’ ”;
and check to make sure that only the key(s) you wanted were added.

上面说添加了两个key,公钥 + 私钥 = 2?!!,难不成把私钥也发过去了!

登陆到远程用户seeker上,打开终端输入命令

seeker@seeker:~$ vim .ssh/authorized_keys 

ps:传入公钥写在  .ssh 目录下 authorized_keys文件

打开文件一检查,发现果真如此,把私钥发过去了,那要私钥还有个屁用啊,看样子是ssh-copy-id seeker@192.168.0.106这个命令出问题了,注意绿色标注部分

Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
    -f: force mode -- copy keys without trying to check if they are already installed
    -n: dry run    -- no keys are actually copied
    -h|-?: print this help

所以正确命令为:

python@python:~/.ssh $ ssh-copy-id  -i id_rsa.pub seeker@192.168.0.106

id_rsa.pub是公钥文件,加上-i 选项,指定要传送的密钥类型,如果不添加,则传送公钥和私钥,就是上面的问题

至此,完成,

原文地址:https://www.cnblogs.com/wangwenhao072093/p/10485928.html

时间: 2024-11-07 09:37:10

使用RSA公钥实现无密码远程登陆另一台机器的相关文章

shell远程操作另外一台机器上数据

shell远程操作另外一台机器上的数据,有两种方式: 1 .配置免密登陆,2.使用sshpass 当前存在两台虚拟机,ip地址分别为:192.168.3.32 192.168.3.33 一.免密登陆操作另外一台机器 1.生成秘钥 两台机器上都做如下操作,三次输入,直接摁回车 [[email protected] work]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save

SSH技术介绍和Xshell公钥远程登陆

SSH简介 传统的网络服务程序,比如FTP,POP,Telnet,本质上都是不安全的,因为它们在网络上用明文传送数据.用户账号和用户口令,很容易受到中间人攻击方式的攻击,攻击者会冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器. 为了满足安全性的需求,IETF的网络工作小组制定了Secure Shell(缩写为SSH),这是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell提供安全的传输和使用环境. SSH是目前较可靠,专为远程登录会话和其他网络服务提

ssh实现远程登陆以及使用技巧

SSH简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.常用于远程登录,以及用户之间进行资料拷贝. 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台.SSH 在正确使用时可弥补网络中的漏洞.SSH 客户端适用于多

远程登陆Linux和配置IP

作业题:1. 自动获取IP地址的命令是什么?您知道在什么情况下,您的Linux才可以自动获取IP地址?   自动获取IP的命令是 dhclient :只要linux所在的网络有dhcp服务器才可以自动获取ip,dhcp服务就是一个发布IP的管理器 ______________________________________________________________________________2. 远程连接Linux服务器,需要Linux服务器开启sshd服务,那么sshd服务默认监听哪

(转)Linux SSH配置和禁止Root远程登陆设置

原文 一.修改vi /etc/ssh/sshd_config 文件 1.修改默认端口:默认Port为22,并且已经注释掉了:修改是把注释去掉,并修改成其它的端口. 2.禁止root用户远程登陆:修改PermitRootLogin,默认为yes且注释掉了:修改是把注释去掉,并改成no. 3.PermitEmptyPasswords   no不允许空密码用户login 二.ssh的公钥认证配置: 修改vi /etc/ssh/sshd_config 文件 RSAAuthentication yes  

Linux SSH实现无密码远程登录

  一.      SSH无密码远程登录原理 二.      SSH实现无密码远程登录 实现主机A 无密码远程登录主机B 主机A   IP地址:10.8.9.154 主机B   IP地址:10.8.9.155 1.  主机A操作如下: [[email protected] .ssh]# pwd                                              #一般SSH生成公钥和私密会在.ssh目录下,如果没有此目录可以手动创建 /root/.ssh [[email p

Linux 通过rsa公钥实现ssh免密码登录

1.ssh免密码登录 root登录192.168.121.212,然后以tomcat帐号ssh远程登录10.14.13.16上,不需要输入密码,需要达到如下效果: [[email protected] .ssh]# ssh [email protected] [[email protected] _web1_13_16 ~]$ 大概思路就是需要用生成rsa的密钥,然后将生成的公钥copy到远程10.14.13.16上的/home/tomcat/.ssh/目录下去实现. 2.192.168.121

Linux服务器远程登陆

安装ssh服务器 大部分linux的服务器版本默认都已经安装了ssh服务,无需再安装.如果需要安装,使用如下命令 sudo apt-get install ssh #安装ssh服务器 安装以后,ssh服务已启动,并且设置为开机自动启动. 如果需要卸载,使用下列命令 sudo apt-get purge ssh #删除ssh服务器 如果需要启动服务,使用如下命令 sudo /etc/init.d/ssh start #启动ssh服务器 远程登陆 ssh -l chey 192.168.21.137

01_SSH远程登陆

SSH是什么 Secure Shell 安全外壳协议 建立在应用层基础上的安全协议 可靠.转为远程登陆会话和其他网络提供安全性的协议 SSH客户端是用于多种平台 服务器安装SSH服务 安装:yum install openssh-server 启动:service sshd start 设置开启运行:chkonfig sshd on 查看进程是否存在:ps -ef |grep ssh 客户端安装SSH工具 win平台使用xshell Linux平台需要安装客户端软件:yum install op