在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 且注意组信息
有两台机器: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 且注意组信息
发表评论
-
glibc版本信息及安装
2017-12-28 15:42 1505在高版本的glibc上编译的不能到底版本的glibc ... -
论GNU、Linux和GNU/Linux之间的关系
2017-12-28 15:17 403相信很多人看到了这个标题就会产生疑问,这篇文章到底要讲 ... -
linux的软链接与硬链接
2017-11-03 16:25 353Linux链接分两种,一 ... -
使用mailx发送邮件
2013-04-12 10:57 1009mailx是UNIX系统上用来处理邮件的工具,使用它可以发送, ... -
查看linux系统信息
2013-02-25 18:58 960Linux系统信息查看命令大全 系统 # uname -a ... -
ssh 常用用法小结
2013-02-25 18:21 1904ssh 常用用法小结 在 ... -
在windows中使用UltraEdit编辑linux下文件
2013-01-18 13:21 5989在windows中使用UltraEdit编辑linux下文件 ... -
beyondCompare 工具比较linux下文件夹
2013-01-18 11:56 1309在windows环境下,用beyondCompare 工 ... -
Linux 目录结构以及作用详解
2013-01-06 14:58 8091、什么是文件系统 当 ... -
Linux通过脚本实现远程自动备份
2013-01-05 16:43 838考虑到在本机上备份数据,一旦该机器硬盘出现故障,数 ... -
Linux的僵尸进程及其解决方法
2013-01-05 16:36 7771. 产生原因: ... -
(linux) find command
2013-01-04 13:22 1351find命令的主要功能是在 ... -
linux之cp/scp命令+scp命令详解
2012-12-25 16:34 988名称:cp使用权限:所有使用者使用方式:cp [options ... -
过滤小结(Linux)
2012-12-20 16:32 0============================ $ ... -
十项Linux操作系统安全管理技巧经验总结
2012-12-18 16:23 669由于Linux操作系统是一个开放源代码的免费操作系统,因此 ... -
Linux磁盘管理中quota命令介绍应用
2012-12-18 14:33 1385Quota 在Linux里,quota就是对硬盘进行限制 ... -
linux中ssh 连接缓慢解决方法
2012-12-13 13:30 1293重新安装机器的情况下 ... -
Redhat linux 命令行设置IP
2012-12-11 14:27 1302redhat linux版本命令行设置IP ifcon ... -
Linux软件包安装方式小结
2012-12-11 10:45 837Linux操作系统软件包安 ... -
Linux压缩解压的相关命令总结
2012-12-11 10:32 827Linux下常用压缩格 ...
相关推荐
SSH登录无需密码的功能是通过公钥认证机制实现的,这在管理多台服务器或者自动化运维时非常方便。下面将详细解释如何设置SSH登录免密以及相关知识点。 首先,要实现SSH免密登录,你需要在本地机器上生成一对密钥,...
在Linux系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到另一台计算机。SSH免密码登录是Linux管理员常用的便捷功能,它允许用户在不同主机间进行身份验证时无需每次都输入密码,提高效率并减少手动...
### 如何实现两台Linux机器之间无密码SSH远程登录 #### 概述 在Linux环境中,经常需要在两台或多台主机之间进行远程管理或数据传输。为了提高安全性与便捷性,可以设置免密码SSH登录功能,即通过公钥认证方式实现...
通常,当通过SSH连接到另一台机器时,需要输入用户名和密码来验证身份。然而,为了方便管理员进行自动化任务或者频繁的无交互式登录,可以设置SSH密钥对认证,从而实现无密码登录。以下是如何在Linux之间配置SSH无...
2. 文件传输:SSH支持SFTP(SSH File Transfer Protocol)和SCP(Secure Copy Protocol),可以安全地在两台机器间传输文件,防止数据被窃取或篡改。 3. 密钥对认证:SSH提供公钥基础设施,用户可以通过公钥/私钥对...
### SSH Key 免密码登录详解 #### 一、SSH Key 的基本概念与原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。通过SSH,可以在非安全的网络环境中提供安全的远程登录服务,其安全性主要依靠...
* -f:后台认证用户/密码,通常和-N 连用,不用登录到远程主机 * -N:不执行脚本或命令,通常与-f 连用 * -g:在-L/-R/-D 参数中,允许远程主机连接到建立的转发的端口 * -L:将本地机器(客户机)的某个端口转发到远...
- **安全性**:PuTTY支持公钥认证,用户可以生成公钥/私钥对,将公钥上传至Linux服务器,实现无密码登录。 5. **SSH密钥对认证**: 为了增强安全性,用户可以选择使用SSH密钥对进行身份验证。PuTTY生成的密钥对包括...
如果你想让两台机器A和B之间都能互相免密码登录,只需在每台机器上重复上述步骤,确保每台机器都有另一台机器的公钥添加到`authorized_keys`文件中。 `ssh-keygen`还有其他选项,如改变密钥的长度或设置自定义的...
SSH的核心功能是提供安全的远程登录,允许用户通过网络连接到另一台计算机,并在该计算机上执行命令。SSH使用公钥/私钥对进行身份验证,增强了安全性。私钥保存在本地计算机上,公钥则可以复制到远程服务器,这样...
SSH是一种网络协议,用于安全地远程登录到另一台计算机,进行命令行交互或者传输数据。它使用加密技术保护通信内容,防止被窃听或篡改。在Linux和Unix-like系统中,SSH广泛用于管理远程服务器。 要实现自动登录SSH...
SSH(Secure Shell)是Linux系统中用于远程登录的重要工具,它提供了一种安全的网络协议,允许用户通过加密的方式远程控制服务器。本主题关注的是"Automatic Login SSH",即如何实现Linux服务器的自动登录功能,特别...
2. **文件传输**:SSH支持SFTP(SSH File Transfer Protocol)和SCP(Secure Copy),可以安全地在两台机器间传输文件。 3. **命令执行**:用户可以通过SSH发送单个命令到远程主机,而不必打开一个完整的shell会话...
标题“批量配置Linux免密登陆”指的是通过自动化脚本实现无需密码验证就能通过SSH连接到多台Linux服务器的技术。这主要依赖于SSH密钥对认证机制,即生成一对公钥和私钥,将公钥部署到目标服务器的`~/.ssh/authorized...
4. **SCP(安全复制)**:说明如何使用scp命令将文件安全地从一台机器复制到另一台。 5. **端口转发**:解释如何设置端口转发,以通过SSH隧道安全地访问远程服务。 6. **安全性最佳实践**:提供关于保持SSH配置安全...
当首次使用 SSH 连接到另一台机器时,系统会提示用户确认目标主机的公钥指纹是否可信。例如: ```bash # ssh 192.168.0.44 ``` 如果选择接受并输入 `yes`,则会在用户的家目录下生成一个名为 `.ssh/known_hosts` 的...
- SSH支持多种认证方式,包括密码认证和密钥认证,提供了加密的数据传输。 **2. 安装与配置** - 进入X Window系统,打开终端,输入`setup`命令,选择“System Services”来启动SSHD服务。 - 编辑`/etc/ssh/sshd_...
- 在另一台机器上使用命令 `ssh username@ip_address` 连接到SSH服务器。 #### SSH常见的报错及解决方法 1. **无法连接到SSH服务器:** - **错误提示**:“ssh: connect to host [IP地址] port 22: Connection ...