`
quanminchaoren
  • 浏览: 924295 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux SSH远程登录自动验证(不输入用户登录密码)的实现

 
阅读更多

由于工作关系,经常需要在非常不同的Linux服务器上转上转去,每次登陆,系统都会提示输入密码,是一件很烦的事情。后来,用SSH证书认证来取代普通的密码认证,就不用每次都输入密码了。OpenSSH允许 远程执行命令,如果再加上证书使用,可以运行一些远程控制的脚本去控制许多许多机器,这个对工作非常有用。

下面我们正式来创建证书:
首先,我们要给远程服务器创建一个公钥(public key)。在你的Linux系统上打开一个命令终端,运行如下命令:

# ssh-keygen -t rsa  (这里也可以将RSA改成dsa,)
Generating public/private rsa key pair.
Enter file in which to save the key (/home/calvin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/calvin/.ssh/id_rsa.
Your public key has been saved in /home/calvin/.ssh/id_rsa.pub.

在这一步里,系统将自动生成一个公钥(public key)并保存在/home/calvin/.ssh/id_rsa/.pub这个文件里面。在上面的命令执行过程中,我们只需要一直敲回车直接使用默认 值就好了(如果你想具体了解,可以去看man page,也可以私下跟我讨论)。

接下来,我们要将这个公钥(public key)复制到远程机器上面去,以前这是一个比较麻烦的事,但是,现在我们只要一个命令就可以搞定:

# ssh-copy-id -i /home/calvin/.ssh/id_rsa.pub username@@remoteserver.com

用自己实际的用户名与服务器地址取代username和remoteserver.com(下同),也可以直接填服务器的IP。
在这里,你可以再试下ssh到远程服务器,应该是不会再提示要密码而直接登陆进去了。

当然,如果你的机器没有ssh-copy-id这个命令,我们也可以使用传统的方法:

# scp ~/.ssh/id_rsa.pub username@remoteserver.com:/home/username

然后,登陆到远程机器上进行下一步的操作:

# ssh username@remoteserver.com
# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys2

接下来,我们要给~/.ssh/authorized_keys2 correctly这个文件设置正确的权限(权限不对,证书会被拒绝)

# chmod 644 ~/.ssh/authorized_keys2
分享到:
评论

相关推荐

    linux ssh远程服务器自动输入密码 sshpass插件

    Linux SSH(Secure Shell)是一种广泛使用的网络协议,用于在不安全的网络环境中提供加密的远程登录和其他网络服务。SSHpass是一个方便的Linux工具,专为自动化任务设计,它允许通过命令行接口在SSH连接中自动输入...

    ssh远程登录linux

    综上所述,SSH远程登录Linux是运维工作中不可或缺的一部分,熟练掌握其使用和配置,能大大提高工作效率并保障系统的安全性。了解并应用上述知识点,你就能轻松地在不同环境下远程管理和维护Linux服务器了。

    SSH远程连接linux服务器工具

    标题中的"SSH远程连接linux服务器工具"指的是使用SSH协议来远程访问Linux服务器的软件工具。SSH协议提供了身份验证和加密功能,确保了用户与服务器之间的通信不会被窃听或篡改。这对于管理和维护远程服务器尤其重要...

    Python基于SSH协议实现Linux系统远程管理方法研究.pdf

    SSH在建立连接时采用密钥交换算法(如Diffie-Hellman算法)来确保会话的私密性,并使用公钥或密码方式对用户进行身份验证。它的数据传输过程是经过加密的,可以有效防止数据在传输过程中的截获和篡改,确保数据传输...

    SSH远程登录linux

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Linux系统中,SSH是管理员和用户进行远程管理、文件传输等操作的常用工具。Windows用户通常会借助第三方软件来实现SSH...

    SSH远程登录linux虚拟机.pdf

    SSH远程登录Linux虚拟机是一项利用SSH(Secure Shell)协议,通过网络对远程Linux系统进行安全访问和管理的技术。这项技术允许用户从一台计算机(客户端)安全地连接到另一台计算机(服务器端)的命令行界面。 首先...

    linux系统的ssh免密码登录机制原理及实现范例

    ### Linux系统的SSH免密码登录机制原理及实现范例 #### 一、SSH免密码登录机制原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。它可以在不安全的网络上提供一种安全的远程登录方法。对于经常...

    Linux配置ssh免密码登录

    这种方式通过使用SSH (Secure Shell) 的公钥/私钥认证机制来实现,即无需每次登录时输入密码即可完成身份验证的过程。本文将详细介绍如何在CentOS环境下配置SSH的无密码登录,并解决在配置过程中可能遇到的一些常见...

    如何开启Ubuntu SSH远程登录

    标题“如何开启Ubuntu SSH远程登录”涉及到的是在Ubuntu操作系统中启用Secure Shell (SSH)服务,以便进行远程登录和管理。SSH是一种加密网络协议,用于在不安全的网络上安全地执行命令行操作。以下是关于这一主题的...

    Linuxssh登录远程服务器 expect

    标题"Linux ssh登录远程服务器 expect"直指一个关键的自动化场景:利用`expect`来实现SSH的无交互登录。这在系统维护、自动化部署或持续集成等场景中非常常见,可以极大地提高工作效率。 首先,我们需要理解SSH的...

    SSH远程登录linux虚拟机.docx

    SSH远程登录Linux虚拟机 SSH(Secure Shell)是一种安全的远程登录协议...SSH远程登录Linux虚拟机需要设置IP地址、检查网络连通性、解决IP地址不在同一网段的问题,并使用SSH Secure Shell Client来登录Linux虚拟机。

    详解SSH如何配置key免密码登录

    如果服务器能够正确地验证解密后的信息,那么它就会允许该用户登录。 这种机制确保即使公钥被其他人获取,也不会对用户造成威胁,因为没有对应的私钥是无法完成解密验证过程的。同时,由于公钥和私钥是一一对应的...

    ssh远程登录的秘钥验证设置.docx

    2. **基于密钥对的验证**:这种方式更为安全,因为它不需要在每次登录时输入密码。首先,你需要在客户端生成一对密钥,包括一个公钥和一个私钥。公钥会被复制到目标服务器的 `.ssh/authorized_keys` 文件中。之后,...

    webssh远程登录

    【WebSSH远程登录详解】 WebSSH是一种基于Web的SSH客户端,它允许用户通过网页界面远程登录并管理Linux服务器,提供了一种便捷、安全的访问方式,尤其适合在跨设备或公共网络环境中操作远程主机。本篇文章将深入...

    7.linux远程连接工具类 SSH

    Linux远程连接工具类SSH是一种广泛使用的通信协议,它允许用户在本地计算机上安全地操作远程Linux系统。SSH,全称为Secure Shell,旨在提供加密的网络服务,特别适用于管理服务器、执行命令、传输文件等场景。在开发...

    两台linux机器之间ssh不需要密码详解

    当用户通过SSH连接远程服务器时,服务器会用之前保存的公钥对客户端的身份进行验证,从而实现免密登录。 #### 配置步骤详解 1. **在客户端生成密钥对** 首先,在客户端执行以下命令来生成RSA类型的密钥对: ``...

    使用ssh、scp不需要密码

    ssh 和scp 是 Linux 系统中常用的远程登陆和文件传输工具,但是使用它们需要输入密码,这就带来了不便。为了解决这个问题,文章介绍了一种使用 ssh 和 scp 不需要密码的方法。 密钥对的生成 密钥对是公钥和私钥的...

    linux实现vnc无密码登录

    标题提到的“linux实现vnc无密码登录”就是针对这种需求的一种解决方案,特别是通过修改turbo VNC的源代码来实现。 Turbo VNC是一款优化过的VNC服务器,它在保持低延迟的同时提供更好的性能。在标准的VNC设置中,...

Global site tag (gtag.js) - Google Analytics