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

LINUX下的ssh认证,不用密码登陆另一台机器

ssh 
阅读更多
在linux下使用ssh认证,不输入密码访问另一台机器,在工作中由于常用到ssh登录其他机器,所在每台机器上做了ssh认证,这样就不用每次都输入繁琐的密码。

有两台机器:server_1 和 server_2
账号都为:work
转到work账号下:su - work
运行:ssh-keygen -d (一路回车下去 )
命令输出为:
Enter file in which to save the key (/home/work/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/work/.ssh/id_dsa.
Your public key has been saved in /home/work/.ssh/id_dsa.pub.
The key fingerprint is:
32:21:e1:3b:7d:6e:de:4b:39:da:af:38:fe:90:40:61 work@server_1.server.com

在/home/work目录下就产生了.ssh的隐含目录,进入些目录下产生两个文档:
id_dsa     ------- 私钥文档
id_dsa.pub ------- 公钥文档

将id_dsa.pub复制一份文档名为: authorized_keys
并将 authorized_keys 的属性改为 600 即文档所属用户有读和写的权限,组用户和其他用户禁止读写,用命令:

cp id_dsa.pub authorized_keys
chmod 600 authorized_keys

同样在server_2上做以上操作,下一步就实现真正的ssh认证了:
将server_1上/home/work/.ssh目录下的id_dsa.pub公钥文档拷到server_2的/home/work/.ssh目录下(注意:不要覆盖掉server_2的id_dsa.pub,拷时要改名)如:
代码:

[work@server_1 .ssh]$ scp id_dsa.pub work@server_2:.ssh/server_1.pub


在server_2的/home/work/.ssh目录下就有了如下文档:
authorized_keys
id_dsa
id_dsa.pub
server_1.pub

用命令:
代码:

cat server_1.pub >> authorized_keys
(注意一定要用追加操作 ">>" 不能用 ">")

这样server_1到server_2的ssh认证就做好了。在server_1上用命令:
代码:

ssh work@server_2
就直接登录到server_2上,而不用输入密码了。

server_2到server_1的认证同上操作即可。


=========================================

使用SSH证书(不要密码)登陆远程服务器
由于工作关系,我经常需要在非常不同的Linux服务器上转上转去,原来每次登陆,系统都会提示你输入密码,这的确是一件很烦的事情,特别是你在需要对好几台机器工作的时候。后来,我学会了用SSH证书认证来取代普通的密码认证,这样子我就不用每次都输入密码了。OpenSSH允许 远程执行命令,如果再加上证书使用,那就我就可以运行一些远程控制的脚本去控制许多许多机器,这个对我的工作非常有用。比如说,在需要在100台机器上添加许多相同的用户。。。

闲话少说,下面我们正式来创建证书:
首先,我们要给远程服务器创建一个公钥(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_keys
接下来,我们要给~/.ssh/authorized_keys correctly这个文件设置正确的权限(权限不对,证书会被拒绝)

# chmod 644 ~/.ssh/authorized_keys
或者设置成只读
# chmod 400 ~/.ssh/authorized_keys


authorized_keys  600  且注意组信息
分享到:
评论

相关推荐

    Linux系统 ssh登录不需要密码

    SSH登录无需密码的功能是通过公钥认证机制实现的,这在管理多台服务器或者自动化运维时非常方便。下面将详细解释如何设置SSH登录免密以及相关知识点。 首先,要实现SSH免密登录,你需要在本地机器上生成一对密钥,...

    Linux系统下如何做到SSH免密码登录

    在Linux系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到另一台计算机。SSH免密码登录是Linux管理员常用的便捷功能,它允许用户在不同主机间进行身份验证时无需每次都输入密码,提高效率并减少手动...

    如何做到两台Linux机器之间不使用密码即可通过SSH远程登录

    ### 如何实现两台Linux机器之间无密码SSH远程登录 #### 概述 在Linux环境中,经常需要在两台或多台主机之间进行远程管理或数据传输。为了提高安全性与便捷性,可以设置免密码SSH登录功能,即通过公钥认证方式实现...

    linux之间ssh不需要输入密码.pdf

    通常,当通过SSH连接到另一台机器时,需要输入用户名和密码来验证身份。然而,为了方便管理员进行自动化任务或者频繁的无交互式登录,可以设置SSH密钥对认证,从而实现无密码登录。以下是如何在Linux之间配置SSH无...

    linux常用SSH软件

    2. 文件传输:SSH支持SFTP(SSH File Transfer Protocol)和SCP(Secure Copy Protocol),可以安全地在两台机器间传输文件,防止数据被窃取或篡改。 3. 密钥对认证:SSH提供公钥基础设施,用户可以通过公钥/私钥对...

    在Linux系统下使用SSH实现端口映射的方法.docx

    * -f:后台认证用户/密码,通常和-N 连用,不用登录到远程主机 * -N:不执行脚本或命令,通常与-f 连用 * -g:在-L/-R/-D 参数中,允许远程主机连接到建立的转发的端口 * -L:将本地机器(客户机)的某个端口转发到远...

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

    ### SSH Key 免密码登录详解 #### 一、SSH Key 的基本概念与原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。通过SSH,可以在非安全的网络环境中提供安全的远程登录服务,其安全性主要依靠...

    linux ssh putty.zip

    - **安全性**:PuTTY支持公钥认证,用户可以生成公钥/私钥对,将公钥上传至Linux服务器,实现无密码登录。 5. **SSH密钥对认证**: 为了增强安全性,用户可以选择使用SSH密钥对进行身份验证。PuTTY生成的密钥对包括...

    Linux使用ssh公钥实现免密码登录实例

    如果你想让两台机器A和B之间都能互相免密码登录,只需在每台机器上重复上述步骤,确保每台机器都有另一台机器的公钥添加到`authorized_keys`文件中。 `ssh-keygen`还有其他选项,如改变密钥的长度或设置自定义的...

    Linux系统管理工具包使用SSH进行分布式管理.docx

    SSH的核心功能是提供安全的远程登录,允许用户通过网络连接到另一台计算机,并在该计算机上执行命令。SSH使用公钥/私钥对进行身份验证,增强了安全性。私钥保存在本地计算机上,公钥则可以复制到远程服务器,这样...

    自动登陆ssh,批量ip脚本操作

    SSH是一种网络协议,用于安全地远程登录到另一台计算机,进行命令行交互或者传输数据。它使用加密技术保护通信内容,防止被窃听或篡改。在Linux和Unix-like系统中,SSH广泛用于管理远程服务器。 要实现自动登录SSH...

    linux-AutomaticloginSSH一键登录SSH可直接从跳板机登录到线上服务器

    SSH(Secure Shell)是Linux系统中用于远程登录的重要工具,它提供了一种安全的网络协议,允许用户通过加密的方式远程控制服务器。本主题关注的是"Automatic Login SSH",即如何实现Linux服务器的自动登录功能,特别...

    SSH Secure远程链接工具

    2. **文件传输**:SSH支持SFTP(SSH File Transfer Protocol)和SCP(Secure Copy),可以安全地在两台机器间传输文件。 3. **命令执行**:用户可以通过SSH发送单个命令到远程主机,而不必打开一个完整的shell会话...

    SSH软件安装包

    4. **SCP(安全复制)**:说明如何使用scp命令将文件安全地从一台机器复制到另一台。 5. **端口转发**:解释如何设置端口转发,以通过SSH隧道安全地访问远程服务。 6. **安全性最佳实践**:提供关于保持SSH配置安全...

    ssh服务 ssh服务 ssh 服务

    当首次使用 SSH 连接到另一台机器时,系统会提示用户确认目标主机的公钥指纹是否可信。例如: ```bash # ssh 192.168.0.44 ``` 如果选择接受并输入 `yes`,则会在用户的家目录下生成一个名为 `.ssh/known_hosts` 的...

    VmWare ssh设置

    - SSH支持多种认证方式,包括密码认证和密钥认证,提供了加密的数据传输。 **2. 安装与配置** - 进入X Window系统,打开终端,输入`setup`命令,选择“System Services”来启动SSHD服务。 - 编辑`/etc/ssh/sshd_...

    SSH配置和经常出现的报错以及解决方法

    - 在另一台机器上使用命令 `ssh username@ip_address` 连接到SSH服务器。 #### SSH常见的报错及解决方法 1. **无法连接到SSH服务器:** - **错误提示**:“ssh: connect to host [IP地址] port 22: Connection ...

    System_Ssh_scp.rar_linux scp_scp_system scp

    要从一台服务器A向另一台服务器B和C发送文件,我们可以编写一个脚本,如压缩包中的`System_Ssh_scp.sh`。这个脚本将包含一系列SCP命令,每个命令对应一个目标服务器。在执行脚本时,确保已经正确配置了SSH密钥对以...

Global site tag (gtag.js) - Google Analytics