在Linux下设置最简单的ssh安全自动登录
A为本地主机(即用于控制其他主机的机器) ;
B为远程主机 假如ip为203.*.*.* ;
A和B的系统都是Linux
在A上的命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@203.*.*.* "mkdir .ssh;chmod 0700 .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub root@203.*.*.*:.ssh/id_rsa.pub (需要输入密码)
在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)
回到A机器:
# ssh root@203.*.*.* (不需要密码, 登录成功)
如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些
深入一点点:
从表面上简单的理解一下登录的过程,
首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码
可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,
把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制
而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了(私钥被人复制)
当然, 这种例子只是方便理解罢了,
拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了
所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开" server, 再以root的身分登录, 即使现在root密码已经更改!
如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 比如:
[root@wwy .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.1.116
......
这样私钥和公钥的名字分别就是:
id_rsa_192.168.1.12 和 id_rsa_192.168.1.116.pub
然后将 id_rsa_192.168.1.116.pub 文件的内容, 追加到sever的 ~/.ssh/authorized_keys2 文件中,
最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:
# ssh -i /root/.ssh/id_rsa_192.168.102.12 192.168.1.116
如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了
分享到:
相关推荐
对于初学者,使用密码认证是最简单的,但为了增强安全性,推荐使用公钥认证,其中私钥保留在本地,公钥放在远程服务器的`~/.ssh/authorized_keys`文件中。 在连接到服务器后,用户可以执行常见的Linux命令,如`ls`...
本文将详细介绍如何在Linux系统中安装和配置ssh,以及相关的安全设置。 安装ssh 在Linux系统中,安装ssh非常简单,只需要使用yum install ssh命令即可。安装完成后,需要启动ssh服务,可以使用service sshd start...
Linux远程连接工具类SSH是一种广泛使用的通信协议,它允许用户在本地计算机上安全地操作远程Linux系统。SSH,全称为Secure Shell,旨在提供加密的网络服务,特别适用于管理服务器、执行命令、传输文件等场景。在开发...
总结来说,"Linux ssh登录远程服务器 expect"是利用Expect脚本自动化Linux通过SSH协议登录远程服务器的过程,它可以高效、安全地执行远程运维任务,尤其适用于批量管理和监控大量服务器的场景。了解和掌握这一技术,...
在IT行业中,SSH(Secure Shell)是一种用于在网络设备之间安全地执行远程命令和传输数据的协议。自动SSH连接脚本可以极大地提高系统管理员的工作效率,特别是在需要定期检查或管理远程服务器时。邮件提醒则是一种...
在IT行业中,安全高效地远程访问Linux服务器是日常工作的重要部分,Xshell作为一款强大的终端模拟器,提供了多种连接方式,包括使用SSH(Secure Shell)协议。本文将详细讲解如何通过SSH密钥对和SSH代理来连接Linux...
PUTTY的telnet功能使得用户能在安全环境中使用这一不安全的协议。 再者,PUTTY的串口通信功能使其成为硬件开发和系统调试的强大工具。通过串口连接,用户可以直接与硬件设备进行交互,例如调试嵌入式系统、物联网...
### Linux系统下的SSH登录与配置方法详解 #### 一、SSH的两种登录方式 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。在Linux系统中,SSH提供了两种主要的登录方式:密码登录和公钥密钥登录。 #...
SSH命令行工具是Linux管理员最常用的工具之一,它允许用户在安全的加密连接下执行各种系统管理任务。通过SharpSSH,C#开发者可以轻松实现这一功能,而无需了解复杂的网络协议细节。 描述中的"C#执行Linux命令并返回...
这款工具因其简单易用、功能强大而在IT行业中备受青睐,尤其是对于初学者来说,它是学习Linux操作和管理的得力助手。 首先, PuTTY的核心功能是提供安全的远程终端会话。SSH协议确保了数据传输的安全性,加密了用户...
首先,SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供加密的通信服务,特别是在进行命令行界面的远程登录时。SSH提供了数据的加密,确保了传输过程中的安全性,防止被窃听或篡改。默认情况下,Linux...
在进行Linux系统管理或自动化任务部署时,经常需要使用SSH(Secure Shell)协议远程连接到其他服务器上执行命令或管理操作。出于安全考虑,SSH在连接远程主机时会要求输入密码,但在脚本自动化场景中,这种交互式...
"最简单好用的Linux远程工具"通常指的是PuTTY,这是一款免费、开源且跨平台的SSH客户端,它允许用户通过安全的Shell(SSH)协议连接到远程Linux服务器,进行命令行操作。 PuTTY是由Simon Tatham开发的,它支持多种...
"SshClient"通常指的是支持SSH协议的客户端工具,尤其在Windows环境下,它为用户提供了一种与Linux或Unix服务器交互的途径。 标题中的"SshClient windows下的ssh客户端"意味着我们将讨论的是专为Windows设计的SSH...
在描述中提到"在win10上可以安装ssh服务",意味着FreeSSHd是Windows 10用户的一个好选择,它使得在Windows环境中使用SSH变得简单。安装过程通常包括下载FreeSSHd.exe可执行文件,运行安装程序,按照向导设置服务端口...
在Windows操作系统上,有多个SSH客户端可供选择,其中Xshell以其强大的功能和易用性脱颖而出,被誉为“最好用的SSH工具”。 Xshell是由NetSarang Computer Inc.开发的一款强大的终端模拟器,它支持多种协议,包括...
6. **最佳实践**:使用SSH时,建议定期更换密钥,避免使用过于简单的密码,并启用双因素认证以增加安全性。同时,定期检查服务器的SSH配置,确保没有开放不必要的端口或服务。 7. **应用场景**:Bitvise SSH Client...
SSH(Secure Shell)协议是一种广泛使用的网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。它通过加密技术确保数据传输的安全性,防止中间人攻击和数据窃取。在本文中,我们将深入探讨如何在QT...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在IT领域,SSH常用于管理员对服务器进行远程管理,包括执行命令、传输文件等。本示例"SSHFileUpAndDown"是利用SSH协议实现...
以下是一些在Linux环境下进行自动备份的方法。 首先,我们可以从创建简单的备份脚本开始。例如,`arc`脚本(见清单1)是一个基于`tar`命令的简单备份工具,用于创建带有时间戳的压缩存档。用户只需提供文件或目录名...