SSH学习之三 SSH与SCP无密码登录

通常情况下,每次使用ssh登录或使用scp复制远程系统的文件时,都需要提供密码,然后才能做进一步的处理。为了省略输入密码这一步骤,有时可以采用Shell脚本的方法解决,但这需要把手工输入的密码以明码形式放在脚本文件中。

利用密钥配置文件,OpenSSH可以是ssh远程登录与scp文件复制的操作过程中省略密码验证的中间环节。为此,ssh客户端首先应建立OpenSSH连接,然后自动地想服务器发送其公钥。之后,服务器即可根据相应用户主目录中预定义的密钥列表,对收到的密钥进行比较。如果存在匹配的密钥,服务器将会允许ssh或sco自动登录。

密钥文件需要单独生成,生成后的密钥文件存储在服务器用户主目录的~/.ssh子目录中。其中,id_rsa和id_rsa.pub文件分别是私玥和公钥,而authorized_keys文件则用于存储所有授权的远程客户系统的公钥,使得远程客户系统能够以此用户的身份登录到本地系统而无需提供密码。

为了实现ssh和scp的无密码登录,需要事先生成并安装远程登录与数据传输的密钥,其唯一的限制是需要把密钥绑定到两个系统的IP地址上。然后,服务器即可使用预安装的密钥,对每一次的远程登录和文件传输进行验证。但是,这以功能不适合于利用DCHP协议动态分配IP地址,致使IP地址经常发送变化的情况。

由于只需知道用户名即可实现远程注册和文件传输,而无需提供密码,这一功能是有安全风险的。因此,在具体实现时,在服务器与客户端之间最好采用普通用户账号,以免造成较大的破坏。

下面以webgod用户为例,详细说明在实现ssh和scp的无密码登录之前,OpenSSH的客户端与服务器双方事先都需要做哪些准备工作。

1 客户端配置

在客户端与服务器系统中分别创建一个同名为webgod用户,然后以webgod用户的身份登录到客户端系统,使用ssh-keygen命令生成一对密钥。当系统提示输入一个与密钥相关联的密码时,直接按下Enter键。

生成的两个密钥文件均存储在webgod用户主目录的.ssh子目录中。其中,id_rsa文件中存储的是私玥,id_rsa.pub文件中存储的是公钥(用于提交远程服务器,解密客户端传输的加密数据)。

采用如下命令,把生成的公钥文件id_rsa.pub复制到远程系统的webgod用户主目录中。

$ scp ~/.ssh/id_rsa.pub [email protected]:pub_key

2 服务器配置

在OpenSSH服务器中,以webgod用户登录,然后使用cat命令和”>>”重定向符号,把pub_key文件中的数据追加到authorized_keys文件的末尾。

$ cat ~/pub_key >>~/.ssh/authorized_keys

authorized_keys文件包含所有OpenSSH客户端系统的公钥列表,如果表中列举的客户系统中的webgod用户仍以同一身份连接到服务器,则无需提供密码。

3 示例

在完成上述全部设置之后,当OpenSSH客户端的webgod用户以webgod身份,使用ssh、scp或sftp连接到远程主机,就不会再提示用户输入密码了。

但这一方法对客户端的其他用户无效,即使他们也以webgod用户的身份登陆到远程服务器,仍需提供密码。

SSH学习之三 SSH与SCP无密码登录

时间: 2024-10-13 14:48:36

SSH学习之三 SSH与SCP无密码登录的相关文章

linux ssh scp无密码登录

一. 应用场景 假如你Linux Client是客户端, Server为服务器,用户名为user.现在要配置从Client到Server的无密码SSH登录或者无密码的scp拷贝. 例如客户端Client(10.1.10.125) 要 ssh 或者scp 到服务器Server(10.1.10.129),125端命令如下 ssh [email protected] scp ** [email protected] ** 二. 实现方法 1:在Client(10.1.10.125)上执行ssh-key

配置ssh,实现节点间的无密码登录

机器如下配置 192.168.121.101 master.hadoop 192.168.121.201 slave1.hadoop 192.168.121.202 slave2.hadoop 安装ssh和rsync服务,机器已经安装就可以省略 配置master无密码登录所有slave 以下操作在master机器上完成 以下操作在slave机器上完成 4.配置所有slave无密码登录master 以下是在slave机器上完成 以下是在master机器上完成

ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决

最近在做hadoop,因为要求各主机之间的用户必须相同,且为方便远程登录,需配置无密码登录 先附上ssh无密码登录设置方法: 先生成密钥并配置无ssh无密码登录本机,输入命令: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将文件拷贝到其他主机相同的文件夹内,输入命令: scp authorized_keys hostname1:~/.ssh/ scp autho

SSH学习

SSH 学习笔记 SSH:struts + hibernate + spring 第一部分:struts2 (没有数据库) struts2 简介 servlet解耦,实现了MVC的思想: struts2 配置文件的标签 package name:唯一标识一个包,不能重名: extends:继承其他包,可以直接使用该包中的资源: abstract:true 包为抽象包,不能写action标签.默认为false: namespace:命名空间,注意搜索机制,默认namespace="/":

SSH无密码登录及SCP

1 scp命令 1)scp可以实现服务器与服务器之间的数据拷贝. 2)案例实操 (1)将hadoop101中/opt/module和/opt/software文件拷贝到hadoop102.hadoop103和hadoop104上. [[email protected] /]# scp -r /opt/module/ [email protected]:/opt (2)将hadoop102服务器上的文件拷贝到当前用户下. [[email protected] opt]# scp [email pr

CentOS下SSH无密码登录的配置

准备工作:    1.确认本机sshd的配置文件(需要root权限) gedit /etc/ssh/sshd_config 找到以下内容,并去掉注释符”#“ RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys  2.如果修改了配置文件需要重启sshd服务 (需要root权限) /sbin/service sshd restart 配置SSH无密码登录需要3步:    1.生成

ssh无密码登录远程主机

方法:在客户端生成公/私钥对,将私钥文件保存在客户端,再将公钥文件上传到服务器端(远程主机) 1.在客户端生成公/私钥对 [email protected]#ssh-keygen...[email protected]#ls .ssh/id_rsa id_rsa.pub //默认id_rsa为私钥,id_rsa.pub为公钥 2.将公钥文件上传到远程主机上 [email protected]#scp ~/.ssh/id_rsa.pub [email protected]:/home/cb/.ss

SSH 实现无密码登录

今天生产要用sftp(ssh+ftp扩展模式)连接远程,但是每次都输入密码,用户不是root最后发现配置完了还是连接不上,最终查找为权限问题.所以总结一下不输入密码连接.ssh 无密码登录要使用公钥与私钥.简单理解为A-->B 那么A有私钥.B有A的公钥即可.linux下可以用用ssh-keygen生成公钥/私钥对(rsa或者dsa算法生成), CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到远程服务器认证文件,更改权限 测试 有机器A(192.168.1.155),B(1

集群中配置多台计算机之间ssh无密码登录的一种简便方法

当我们在配置多台计算,使之可以相互使用无密码登录-ssh,之前都是一台一台的配置,现在一台A上添加B,然后在另一台B上再次添加A,这样使得 authorized_keys中的内容相同,但时并不是完全相同,比如添加顺序.如果超过2台,这种配置就相当复杂了,而且容易出错.后来,在网上看到 了一种简单的配置,所有机器只需配置一遍即可. 1.安装ssh.  sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ss