linux上如何设置ssh免密登陆

一.linux上ssh链接

1、功能说明

scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:

scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径

scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名

scp使用第一种格式是将远程Linux系统上的某个文件或者目录拷贝到本地Linux系统上来,使用第二种是将本地的某个文件或者目录拷贝到远程Linux系统的某个路径下。

2、举例

(1)目前我们处在IP为“10.4.63.11”的Linux系统下,计划将系统下的/home/ai/maintain/target/maintain-1.0-SNAPSHOT.war

文件拷贝到IP为“10.4.62.94”的远程Linux系统中xdy用户下的/home/xdy/opt/目录下,并更名:

scp /home/ai/maintain/target/maintain-1.0-SNAPSHOT.war [email protected]:/home/xdy/opt/maintain.war

命令输入完毕,会要求输入“10.4.62.94”服务器xdy的密码,然后开始远程拷贝数据。

(2)将本地/etc目录中所有的文件和子目录拷贝到IP为“10.4.62.94”的远程Linux系统的root用户下的/opt目录中:

scp -r /etc [email protected]:/opt

这里的选项“r”与cp命令的“r”选项含义相同。

二.如何设置免密登陆

准备两台以上的Linux服务器

先使用ssh登录试一下,如果没有安装则需要先安装一下

ssh 10.4.63.11 会提示你输入密码

[[email protected] ~]$ ssh 10.4.63.11

[email protected]‘s password:

Last login: Mon Jan  9 10:40:29 2017 from 10.4.16.200

执行ssh-keygen -t rsa

这时.ssh目录下会生成私钥和公钥的键值对id_rsa,id_rsa.pub

再其他服务器上执行同样的命令生成文件(这里以一台为例)

[[email protected] ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/ai/.ssh/id_rsa):(一路回车)

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/ai/.ssh/id_rsa.

Your public key has been saved in /home/ai/.ssh/id_rsa.pub.

The key fingerprint is:

da:7d:0c:8d:bf:ba:d5:0b:89:53:ea:cd:bc:a5:87:e7 [email protected]

The key‘s randomart image is:

+--[ RSA 2048]----+

|                 |

|                 |

|                 |

|           o     |

|        S o o    |

|       o . B o   |

|      . . = B.o  |

|         . B.=o. |

|          +oB=E  |

+-----------------+

将所有服务器上的公钥合并到一个文件authorized_keys中

cat id_rsa.pub >> authorized_keys

ssh [email protected] cat /home/xdy/.ssh/id_rsa.pub >> authorized_keys

查看authorized_keys里面有多个server的公钥信息,如果你有多个server同样往里面加就好了

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAv97+Xzd2GRlmq3TcAMGn2gX8DJbUQ89f6H8A1ZA5goLYtJ//jLmItjkw5C8/B7HRRrsGsGvn8rHm7mCXDVjaiPuqKWodydaQUDJaGCG4U5I0piz20du563odt6Lgp5sWzoQkDt0aH2UC4c+U8ZDpI5uyw8ay+V60gYdpZC+BBs4tWk1EQtKOaGrHRKRcYxE11eMbFaf/ieVa50c0Tvw+PV9wUdFBY3f769bGhX/hYp5MqvgnTWJvTx5dj2vNYdIS7+maPgDM0Ym34pF+7BRvy4JpOXLxZJHpZohy1uxl+pbVscwXKhCSk+wNRkRNaH/BQ3hs5WczZWrc78l0YHggnQ== [email protected]

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwcAVNHex5eZx2WpbRfwo2YcQEERHRyj6EIxerAq8ebvdBs+3aOyo3quTAIjtKYMx5jWkWcDTZOW2WQ8tKqOTn9Dedtb7gwhxPYIF8qcxWpZXINt92cJcgZSsMHAor+tqxupeej4CkePtuEjoNeAESiOenJ1YPbtEVC9ms5HUpxaiG41lIxFdCx6anJByvgnOZIdf97hQE5RpY+qmNBl2L5fAZN7JwxaKjmiTx6rkNzvs3K3swXk4524e8gPLXeD9VRKYeYT1zQHfy7PLmER8Lq2Y9mTSRP0mJ7UYfvvf8QqgWH+AZjjmoMTsn+HsdPf3UMXk9RbV3dYeeWO41WEaeQ== [email protected]

将authorized_keys、known_hosts分别复制到其他服务器的.ssh目录下

scp authorized_keys [email protected]:/home/xdy/.ssh/

scp known_hosts [email protected]:/home/xdy/.ssh/

[[email protected] .ssh]$ scp authorized_keys [email protected]:/home/xdy/.ssh/

[email protected]‘s password:

authorized_keys                      100%  787     0.8KB/s   00:00

[[email protected] .ssh]$ scp known_hosts [email protected]:/home/xdy/.ssh/

known_hosts                          100%  784     0.8KB/s   00:00

[[email protected] .ssh]$

这时候再ssh登录,这时候就不用再输入密码啦。

scp /home/ai/maintain/target/maintain-1.0-SNAPSHOT.war [email protected]:/home/xdy/opt/maintain.war

时间: 2024-10-13 11:55:33

linux上如何设置ssh免密登陆的相关文章

【Linux】ssh-copy-id三步实现ssh免密登陆

一.本地机器上使用ssh-keygen产生公钥私钥对 ssh-keygen -t rsa -C "[email protected]" --->执行完会在~/.ssh/下生成公钥私钥对 查看公钥私钥对: wucaiyundeMacBook-Pro:~ wucaiyun$ cd ~/.ssh/ wucaiyundeMacBook-Pro:.ssh wucaiyun$ ll total 24 899401 0 drwx------ 5 wucaiyun staff 160 12 18

解决Centos6.4集群配置ssh免密登陆仍然需要输入密码问题

遇到的问题展示:   Ssh免密登陆配置成功之后仍然需要输入密码,找了很多方法,最后已解决,现把解决办法的详细过程记录下来,希望对你有帮助...       解决办法: 一.准备工作 1.安装ssh服务 执行rpm -qa | grep ssh 若无返回ssh服务,则需要执行下列语句进行安装 sudo yum install openssh-clients sudo yum install openssh-server 2.打开本机的ssh配置文件   删除以下内容每行开头的注释"#"

设置SSH 免密码登陆

设置dns: vi /etc/hosts 最后一行追加; ip 主机名 设置SSH 免密码登陆: telnet 远程连接,SSH(secure shell)加密的通信协议,加密方式:rsa或者dsa root 目录下   ls -a  有.ssh 文件(存放密钥) ssh-keygen -t rsa  (三次回车) cd .ssh/    cp  id_rsa.pub  authorized_keys(生成授权文件) .ssh 文件夹rw-r--r--(g和0没有写的权限,u有写的权限) had

使用rsync基于ssh免密登陆进行备份或目录同步

日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ssh免密登陆,此过程不再赘述,请自行百度. 2.A主机安装rsync命令:yum install rsync -y 3.在A主机根目录下创建/ceshi目录,B主机根目录下也创建/ceshi目录,并touch一些测试文件. 4.执行命令:rsync -a -e "ssh" 192.168.2

centos7:ssh免密登陆设置及常见错误

目录 一.免密登录设置 二.常见错误 三.CentOS7再ssh-copy-id时的错误 一.免密登录设置 1.使用root用户登录,进入到目录/root/.ssh 2.执行命令:ssh-keygen -t rsa 一路回车,完成后会在目录/root/.ssh下面生成文件 id_rsa和id_rsa.pub 3.将公钥写入文件authorized_keys:cat id_rsa.pub >> authorized_keys 4.重复1.2.3,直到要免密登录的所有机器都生成了id_rsa和id

ssh免密登陆

ssh无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 系统:CentOS7主机:A(192.168.66.100):B(192.168.66.110)为方面,用户都为root 1.在A下生成公钥/私钥对命令:    ssh-keygen -t rsa -P ''-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/root下生成.ssh目录,其他用户的话在对应的家目录下(/home/

shell脚本配置ssh免密登陆

通过shell脚本配置免密登陆,分为两个脚本,一个是配置文件config.env,一个是正式脚本sshkey.sh. # config.envexport HOST_USER=(root) export PASSWD=(a) export SSH_HOST=(192.168.165.15 192.168.165.16 192.168.165.165) 以上congfig.env文件中,SSH_HOST参数可配置多个IP,可配置不同的用户 sshkey.sh脚本内容大致如下: 在本地用rsa加密方

ssh免密登陆(简单快捷)

介绍免密登陆配合下边这张图可以了解下过程: 假设现在A要通过免密登陆B 在A上的操作: 1.终端输入ssh-keygen (后边可以指定加密算法:-t 算法,如果不指定就是默认的rsa) 原理: 首先通过ssh-keygen命令生成密钥对(即公玥和私钥) 生成后密钥对会自动保存到/root/.ssh目录下,此目录下有两个文件即: id_rsa(私钥),id_rsa.pub(公钥) 2.终端输入ssh-copy-id 要连接的ip地址(如果本地/etc/hosts配置文件中有该地址的别名也可以用别

ssh免密登陆权限问题

问题: 添加了authorized_keys还是不能免密登陆. 思路: 检查端口是否开放,是否允许root用户登录,尝试重启ssh服务... 最有可能的还是权限问题,出现Permission denied...... 下面两个目录的所有权必须是user,所属组也应该是user,权限必须为700 \home\user \home\user.ssh 下面公钥文件的所有权必须是user,所属组也应该是user,权限必须为644 \home\user.ssh\authorized_keys 保证每个目录