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

如何使用

直接指定ip然后-i 指定key文件,然后指定用户

ssh 1.1.1.1 -i Test1 -l userxxx

不指定用户实际上就是使用当前的本机登陆的用户名去登陆远端主机,比如本地用户是AAA,那么:

ssh 1.1.1.1 -i Test1

等同于

ssh 1.1.1.1 -i Test1 -l AAA

这里要注意,生成的key是和一对用户绑定的,生成key的用户以及存储这个key的公钥的远端主机的用户。ssh的原理就是,公钥给人家,自己留秘钥,远端主机的其他用户也是无法看到这个指定的用户的接受到的公钥的,所以用户是一对一的。

比如我在test-server 下面的azuo1228生成key,然后拷贝到远端主机dest-server去使用,那么放在远端主机的哪个 用户home目录下面,对应的远端主机的这个用户才可以被无密码登陆,并不等于对远端主机的其他用户也能免密码登陆。

开始操作

1.生成key:

[azuo1228@test-server ~]$ ssh-keygen

这里一直敲回车就好

Generating public/private rsa key pair.
Enter file in which to save the key (/home/azuo1228/.ssh/id_rsa):
Created directory '/home/azuo1228/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/azuo1228/.ssh/id_rsa.
Your public key has been saved in /home/azuo1228/.ssh/id_rsa.pub.
The key fingerprint is:
d2:33:66:86:0a:b4:27:a9:86:92:24:ff:13:63:96:15 azuo1228@test-server
The key's randomart image is:
+--[ RSA 2048]----+
|   |
| E  |
| . .  |
| . o .o  |
|..= .oo S |
|++ +*. = o |
|=..o.o  |
|o ..  |
| ..  |
+-----------------+
[azuo1228@test-server ~]$ cd .ssh/
[azuo1228@test-server .ssh]$ dir
id_rsa id_rsa.pub

查看生产结果

[azuo1228@test-server .ssh]$ ll
total 8
-rw------- 1 azuo1228 administrator 1675 Dec 21 18:11 id_rsa
-rw------- 1 azuo1228 administrator 403 Dec 21 18:11 id_rsa.pub
[azuo1228@test-server .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxp1CLe+v3L9OjlJCoBBMtQP5p2zQSACJuCD8rPRT2KQmLFznJo9ehTJQp3UfbSzAo3muudiJ9hvyL8f8hN05voXzBSyrul3v39iiqyPJGFbZhtlIsvVuHNEOVaa+StP/WVcH3nT50Y2TsIx0ikXUOVaaawHKUV3wBHlyLLANMAG8yOy4NIzCj++TO4n+66uyrgVvUf
mZ02ALGGL0gUIV97tlhdwVQLG+2mJwSU0E3fksMVlhKxQrpaOx1OtObF0Xo4CmuuXAowtm/uW50gHRVYMA7N/VNgbWaa4hbypCV5m6UqF6P8bHp1Kgz0qm/U0ro1jFzNv1+fin2ZdwV1Ytr azuo1228@test-server

2.拷贝到远端主机指定用户的home下面

可以看到这次还是要输密码的

[azuo1228@test-server .ssh]$ scp id_rsa.pub azuo1228@10.148.167.106:/home/azuo1228
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
azuo1228@10.148.167.106's password:
id_rsa.pub 100% 403 0.4KB/s 00:00

在此测试登录 -- 需要密码,还没免密码

[azuo1228@test-server .ssh]$ ssh azuo1228@10.148.167.106
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
azuo1228@10.148.167.106's password:
Last login: Wed Dec 21 18:07:21 2016 from shang1lu4gnl.ads.autodesk.com
Authorized uses only. All activity may be monitored and reported.
[azuo1228@dest-server ~]$

不存在.ssh的话需要创建

[azuo1228@dest-server ~]$ mkdir .ssh
[azuo1228@dest-server ~]$ cd .ssh/
[azuo1228@dest-server .ssh]$ cat ../id_rsa.pub | tee -a authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxp1CLe+v3L9OjlJCoBBMtQP5p2zQSACJuCD8rPRT2KQmLFznJo9ehTJQp3UfbSzAo3muudiJ9hvyL8f8hN05voXzBSyrul3v39iiqyPJGFbZhtlIsvVuHNEOVaa+StP/WVcH3nT50Y2TsIx0ikXUOVaaawHKUV3wBHlyLLANMAG8yOy4NIzCj++TO4n+66uyrgVvUfmZ02ALGGL0gUIV97tlhdwVQLG+2mJwSU0E3fksMVlhKxQrpaOx1OtObF0Xo4CmuuXAowtm/uW50gHRVYMA7N/VNgbWaa4hbypCV5m6UqF6P8bHp1Kgz0qm/U0ro1jFzNv1+fin2ZdwV1Ytr azuo1228@test-server
[azuo1228@dest-server .ssh]$ ll
total 4
-rw-r--r-- 1 azuo1228 administrator 403 Dec 21 20:33 authorized_keys

需要权限为600

[azuo1228@dest-server .ssh]$ chmod 600 authorized_keys

[azuo1228@test-server .ssh]$ ssh azuo1228@10.148.167.106
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
Last login: Wed Dec 21 20:32:08 2016 from c72
Authorized uses only. All activity may be monitored and reported.
[azuo1228@dest-server ~]$
[azuo1228@dest-server ~]$
[azuo1228@dest-server ~]$ exit
logout
Connection to 10.148.167.106 closed.

再次登陆,就已经免密了

[azuo1228@test-server .ssh]$ ssh 10.148.167.106
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
Last login: Wed Dec 21 20:33:34 2016 from c72
Authorized uses only. All activity may be monitored and reported.

在尝试登陆zhour用户,依旧要密码,可见免密过程是一对一的。

[azuo1228@test-server .ssh]$ ssh 10.148.167.106 -l zhour
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
zhour@10.148.167.106's password:

拷贝公钥到另一个用户zhour

[azuo1228@test-server .ssh]$ scp id_rsa.pub zhour@10.148.167.106:/home/zhour

Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
zhour@10.148.167.106's password:
id_rsa.pub  100% 403 0.4KB/s 00:00

登陆依旧需要密码

[azuo1228@test-server .ssh]$ ssh 10.148.167.106 -l zhour
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
zhour@10.148.167.106's password:
Last login: Wed Dec 21 17:55:32 2016 from shang1lu4gnl.ads.autodesk.com
Authorized uses only. All activity may be monitored and reported.

添加公钥给zhour

[zhour@dest-server .ssh]$ cat ../id_rsa.pub | tee -a authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxp1CLe+v3L9OjlJCoBBMtQP5p2zQSACJuCD8rPRT2KQmLFznJo9ehTJQp3UfbSzAo3muudiJ9hvyL8f8hN05voXzBSyrul3v39iiqyPJGFbZhtlIsvVuHNEOVaa+StP/WVcH3nT50Y2TsIx0ikXUOVaaawHKUV3wBHlyLLANMAG8yOy4NIzCj++TO4n+66uyrgVvUfmZ02ALGGL0gUIV97tlhdwVQLG+2mJwSU0E3fksMVlhKxQrpaOx1OtObF0Xo4CmuuXAowtm/uW50gHRVYMA7N/VNgbWaa4hbypCV5m6UqF6P8bHp1Kgz0qm/U0ro1jFzNv1+fin2ZdwV1Ytr azuo1228@test-server

这样就免密了

[azuo1228@test-server .ssh]$ ssh 10.148.167.106 -l zhour
Access and Authorization to this server is controlled by Active Directory. Please login with your admin account.
Last login: Wed Dec 21 20:34:49 2016 from c72
Authorized uses only. All activity may be monitored and reported.

注意

需要注意两点,如下:

免密之后,scp这种走ssh 通道的都会免密;

key拷贝到远程主机的指定用户home目录下,最后,免输入密码的时候是远端主机的指定用户,非本地主机的用户

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • linux ssh 使用深度解析(key登录详解)

    SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task Force)的Network Working Group所制定的一种协议.SSH的主要目的是用来取代传统的telnet和R系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具,实现对远程登陆和远程执行命令加密.防止由于网络监听而出现的密码泄漏,对系统构成威胁. ssh协议目前有SSH1和SSH2,SSH2协议兼容SSH1.目前

  • 使用ssh-keygen,实现免密码登陆linux的方法

    1  本机创建ssh密钥 ssh-keygen 2  拷贝公共密钥到"被登陆机"输入密码, scp  id_rsa.pub  root@10.35.0.35:~/.ssh/id_rsa.pub 3  ssh到"被登陆机"把公共密钥输入 "authorized_keys"(如果多个机器都需要使用rsa密钥认证登录此机器的话,将这些机器产生的公钥全部输入到)"authorized_keys" cat  id_rsa.pub >

  • ssh(ssh-keygen)配置免输入密码登录远程主机的方法

    环境:本地主机:ha01eth0: 192.168.1.100 //对外IP地址 远程主机:ha02eth0: 192.168.1.200 //对外IP地址 本地主机ha01配置: 复制代码 代码如下: [root@ha01 /]# cd /etc/ssh[root@ha01 ssh]# ssh-keygen -t rsa -N "" (该步骤生成key公私密钥对,-N ""表示密钥对短语为空)Generating public/private rsa key pa

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

    如何使用 直接指定ip然后-i 指定key文件,然后指定用户 ssh 1.1.1.1 -i Test1 -l userxxx 不指定用户实际上就是使用当前的本机登陆的用户名去登陆远端主机,比如本地用户是AAA,那么: ssh 1.1.1.1 -i Test1 等同于 ssh 1.1.1.1 -i Test1 -l AAA 这里要注意,生成的key是和一对用户绑定的,生成key的用户以及存储这个key的公钥的远端主机的用户.ssh的原理就是,公钥给人家,自己留秘钥,远端主机的其他用户也是无法看到这

  • 详解ssh免密码登录配置方法(图示加命令)

    首先,说明一下我们要做的是,serverA 服务器的 usera 用户免密码登录 serverB 服务器的 userb用户. 我们先使用usera 登录 serverA 服务器 [root@serverA ~]# su - usera [usera@serverA ~]$ pwd /home/usera 然后在serverA上生成密钥对 [usera@serverA ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Ent

  • Linux下SSH免密码登录配置详解

    假设有 A. B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器. 两台服务器的信息如下: 主机名 IP地址 免密码登录用户名 server1 192.168.12.11 guest1 server2 192.168.12.12 guest2 环境设置(root权限) 1.关闭防火墙和SELinux Redhat使用了SELinux来增强安全,关闭的办法为: a. 永久有效 修改 /etc/selinux/config 文件中的 SELINUX=en

  • CentOS 6.5中SSH免密码登录配置教程

    0.说明 这里为了方便说明问题,假设有A和B两台安装了centos6.5的主机.目标是实现A.B两台主机分别能够通过ssh免密码登录到对方主机.不同主机的配置过程一样,这里介绍A主机的配置过程. 事先在AB主机分别创建好要免密码登录的用户名,在/etc/hosts文件增加主机名和ip. 创建新用户:useradd linuxidc 设置密码:passwd linuxidc,输入自己想要的密码即可,之后su linuxidc切换用户 修改主机名:vim /etc/sysconfig/network

  • centos配置ssh免密码登录后仍要输入密码的解决方法

    前言 在搭建Linux集群服务的时候,主服务器需要启动从服务器的服务,如果通过手动启动,集群内服务器几台还好,要是像阿里1000台的云梯Hadoop集群的话,轨迹启动一次集群就得几个工程师一两天时间,是不是很恐怖.如果使用免密登录,主服务器就能通过程序执行启动脚步,自动帮我们将从服务器的应用启动.而这一切就是建立在ssh服务的免密码登录之上的.所以要学习集群部署,就必须了解linux的免密码登录. 第一步:在本机中创建秘钥 1.执行命令: ssh-keygen -t rsa -C "xx@qq.

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

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(192.168.1.155),B(192.168.1.181).现想A通过ssh免密码登录到B. 首先以root账户登陆为例. 1.在A机下生成公钥/私钥对. [root@A ~]# ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车. 该命令将在/root/.ssh目录下面

  • 在CentOS / RHEL上设置 SSH 免密码登录的方法

    作为系统管理员,你计划在 Linux 上使用 OpenSSH,完成日常工作的自动化,比如文件传输.备份数据库转储文件到另一台服务器等.为实现该目标,你需要从主机 A 能自动登录到主机 B.自动登录也就是说,要在 shell 脚本中使用ssh,而无需要输入任何密码. 本文会告诉你怎样在 CentOS/RHEL 上设置 SSH 免密码登录.自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件. SSH 是开源的,是用于远程登录的最为可靠的网络协议

  • Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

    环境: ssh server: 192.168.100.29  server.example.com ssh client: 192.168.100.30  client.example.com 通过root用户建立秘钥认证实现SHELL脚本管理,分发,部署 首先client端创建秘钥对,并将公钥分发给需要登录的SSH服务端 注:公钥相当于锁,私钥相当于钥匙,我们这里相当于在客户端创建一对钥匙和锁,想要做到SSH免密码登录,就相当于我们将锁分发到服务端并装锁,然后客户端就可以利用钥匙开锁. 一.

  • ubuntu16.04服务器配置ssh免密码登录

    在客户端操作 ssh-keygen -t rsa 文件位置写/home/try/.ssh/server_rsa,不使用默认值,我命名为server_rsa担心影响到git的key(因为我的git使用的是默认值) ssh-copy-id root@123.45.56.78(你的服务器ip), 或这使用 cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/autho

  • 详解MyBatis XML配置解析

    MyBatis核心配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environm

随机推荐