SSH公钥认证

一、实验的目的

了解密钥对的创建和使用,掌握免密码远程登录和远程操作

二、实验环境

本地主机 rh1: 192.168.233.3/24

远程主机 rh2: 192.168.233.4/24

在putty上,以用户yanji登录rh1。

三、实验过程(写出屏幕上的输出,必要时作出评述或解释)

1、创建密钥对

主机rh1,用户yanji。

$zh

$cd

$mkdir -pm 700 .ssh

$ssh-keygen -f .ssh/id_dsa -t dsa

[[email protected] yanji]$ zh

[[email protected] yanji]$ cd

[[email protected] yanji]$ mkdir -pm 700 .ssh

[[email protected] yanji]$ ssh-keygen -f .ssh/id_dsa -t dsa

Generating public/private dsa key pair.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in .ssh/id_dsa.

Your public key has been saved in .ssh/id_dsa.pub.

The key fingerprint is:

19:0a:c1:03:f5:5a:d6:1f:fe:ba:2b:bb:8a:98:a9:2c [email protected]

口令串passphrase为空。查看产生的密钥对:

私钥:

$cd

$cat .ssh/id_dsa

[[email protected] yanji]$ cd

[[email protected] yanji]$ cat .ssh/id_dsa

-----BEGIN DSA PRIVATE KEY-----

MIIBuwIBAAKBgQCg2+/fn+RwjHYUDYA0hczgX/dRf0ljszAUeopo4QpF4K+WhmRM

fNsfdigzCA9Y7/aMeZ5olT69KfaKmEGJs2apvpcdtPdazHQgU3CyGneQly5USP0K

xwtrsF6SyllrDzS42JJrEgnTAvn3ix1KSy8mbZjfaCzFD3lDuRrk9kxWTQIVALcY

qQDmMAmq4OgxURdDvIuO0GPzAoGAA0ANpEGkECDi25QENHUSXwLyKEdcCwppE7VT

XgLJ+qZNnLND1xSPuJi4oD1H0XpuG+5tyoTfrizoEOBZfKfSSHwVPnSQKzB11o4r

Nn2H1pj6hX1nvCeNYHVZ/C5Y8XhfLK+CzWZy+avG17PrNHWSPoItMhP0/Oq7HW2T

LyFGWBsCgYBLGHGc7AOIUeuiBNMiQxLX8itbhxGtK2dNWJYb6CL8D2t3j7loEDGY

6y5EXhNcajIEDB7IBf0d7qYiqx8sBcf1+cgNOvJhySSe33XQNeDteJuQoNPOMcYu

uivB5IezWcO08+lfov4RqMdJQpJ+dcRE1i1s5sbxepQGU0jtroDKIAIVAIWu/kwt

gTQnfm3OPTAErqESbbb7

-----END DSA PRIVATE KEY-----

公钥:

$cat .ssh/id_dsa.pub

[[email protected] yanji]$ cat .ssh/id_dsa.pub

ssh-dss AAAAB3NzaC1kc3MAAACBAKDb79+f5HCMdhQNgDSFzOBf91F/SWOzMBR6imjhCkXgr5aGZEx82x92KDMID1jv9ox5nmiVPr0p9oqYQYmzZqm+lx2091rMdCBTcLIad5CXLlRI/QrHC2uwXpLKWWsPNLjYkmsSCdMC+feLHUpLLyZtmN9oLMUPeUO5GuT2TFZNAAAAFQC3GKkA5jAJquDoMVEXQ7yLjtBj8wAAAIADQA2kQaQQIOLblAQ0dRJfAvIoR1wLCmkTtVNeAsn6pk2cs0PXFI+4mLigPUfRem4b7m3KhN+uLOgQ4Fl8p9JIfBU+dJArMHXWjis2fYfWmPqFfWe8J41gdVn8LljxeF8sr4LNZnL5q8bXs+s0dZI+gi0yE/T86rsdbZMvIUZYGwAAAIBLGHGc7AOIUeuiBNMiQxLX8itbhxGtK2dNWJYb6CL8D2t3j7loEDGY6y5EXhNcajIEDB7IBf0d7qYiqx8sBcf1+cgNOvJhySSe33XQNeDteJuQoNPOMcYuuivB5IezWcO08+lfov4RqMdJQpJ+dcRE1i1s5sbxepQGU0jtroDKIA==
[email protected]

[[email protected] yanji]$

2、上传公钥到rh2

主机rh1,用户yanji。

$cd

$scp .ssh/id_dsa.pub [email protected]:.

[[email protected] yanji]$ scp .ssh/id_dsa.pub [email protected]:.

[email protected]‘s password:

id_dsa.pub           100% |*****************************|   617       00:00

3、远程登录rh2

$主机rh1,用户yanji。

$ssh [email protected]

...

#

[[email protected] yanji]$ ssh [email protected]

[email protected]‘s password:

Last login: Fri Jan 30 15:08:33 2015 from 192.168.233.1

现在到了rh2。

4、添加yanji的公钥到授权密钥文件

#mkdir -pm 600 .ssh

#cat id_dsa.pub >> .ssh/authorized_keys

#chmod 600 .ssh/authorized_keys

#exit

$

[[email protected] root]# mkdir -pm 600 .ssh

[[email protected] root]# cat id_dsa.pub >> .ssh/authorized_keys                      [[email protected] root]#    chmod 600 .ssh/authorized_keys

[[email protected] root]# exit

[[email protected] yanji]$

现在回到了rh1。

5、免密码远程登录

主机rh1,用户yanji。

远程登录rh2,创建文件poem1后退出。

$ssh [email protected]

#zh

#cat > poem1

唧唧复唧唧

木兰当户织

不闻机杼声

惟闻女叹息

#exit

$

[[email protected] yanji]$ ssh [email protected]

Last login: Fri Jan 30 15:13:39 2015 from 192.168.233.3

[[email protected] root]# zh

[[email protected] root]# cat > poem1

唧唧复唧唧

木兰当户织

不闻机杼声

惟闻女叹息

[[email protected] root]# exit

logout

Connection to 192.168.233.4 closed.

[[email protected] yanji]$

现在又回到了rh1

6、远程复制

主机rh1,用户yanji

$ls

$scp [email protected]:poem1 .

$ls

$cat poem1

[[email protected] yanji]$ ls

01

[[email protected] yanji]$ scp [email protected]:poem1 .

poem1                100% |********************************|    64       00:00

[[email protected] yanji]$ ls

01  poem1

[[email protected] yanji]$ cat poem1

唧唧复唧唧

木兰当户织

不闻机杼声

惟闻女叹息

6、远程操作(远程执行命令)

主机rh1,用户yanji。

$ssh [email protected] ls -l

$ssh [email protected] "echo ‘(木兰诗片段)‘ >> poem1"

$ssh [email protected] "cat poem1"

[[email protected] yanji]$ ssh [email protected] ls -l

total 160

-rw-r--r--    1 root     root         1837 Nov  9 03:51 anaconda-ks.cfg

-rw-r--r--    1 root     root            0 Nov 21 13:41 backup

drwxr-xr-x    2 root     root         4096 Nov 16 01:44 bin

drwxr-xr-x    2 root     root         4096 Nov 21 07:48 c

-rw-r--r--    1 root     root           49 Nov 21 13:52 cron.txt

-rw-r--r--    1 root     root          182 Nov 21 05:53 dd

-rw-r--r--    1 root     root           12 Nov 21 08:01 ee

-rw-r--r--    1 root     root           50 Nov 16 01:41 file

-rw-r--r--    1 root     root            0 Nov 21 01:53 file1

-rw-r--r--    1 root     root            0 Nov 21 01:53 file4

-rw-r--r--    1 root     root            0 Nov 21 01:53 file44

drwxr-xr-x    2 root     root         4096 Nov 21 02:51 file55

drwxr-xr-x    2 root     root         4096 Nov 21 01:57 file554

-rwxr-xr-x    1 root     root        11816 Nov 16 02:09 hexagon

-rw-r--r--    1 root     root          339 Nov 16 02:08 hexagon.c

-rw-r--r--    1 root     root          460 Nov 16 02:10 hexagon.dat

-rw-r--r--    1 root     root         1696 Nov 16 01:52 hexagon.o

-rw-r--r--    1 root     root          151 Nov 16 02:12 hexagon.p

-rw-r--r--    1 root     root          617 Jan 30 15:10 id_dsa.pub

-rw-r--r--    1 root     root           12 Nov 21 08:03 info

-rw-r--r--    1 root     root        19564 Nov  9 03:50 install.log

-rw-r--r--    1 root     root         4268 Nov  9 03:50 install.log.syslog

-rwxr-xr-x    1 root     root          103 Nov 21 15:22 l1

-rwxr-xr-x    1 root     root          137 Nov 21 08:08 let

-rw-r--r--    1 root     root            3 Nov 14 16:15 list.o

-rwxr-xr-x    1 root     root          104 Nov 14 12:10 mean

drwxr-xr-x    2 root     root         4096 Nov 12 08:12 mmmmm

-rw-r--r--    1 root     root          762 Nov 21 07:44 named.conf

-rw-r--r--    1 root     root          104 Nov 11 07:04 nn

drwxr-xr-x    2 root     root         4096 Nov 21 04:01 p

-rw-r--r--    1 root     root           64 Jan 30 15:20 poem1

drwxr-xr-x    2 root     root         4096 Nov 21 04:01 pp

-rwxr-xr-x    1 root     root          133 Nov 21 05:24 shell

-rw-r--r--    1 root     root           29 Nov 21 14:00 time

-rw-r--r--    1 root     root         9767 Nov 21 15:54 xx.tar.gz

[[email protected] yanji]$ ssh [email protected] "echo ‘(木兰诗片段)‘ >> poem1"

[[email protected] yanji]$ ssh [email protected] "cat poem1"

唧唧复唧唧

木兰当户织

不闻机杼声

惟闻女叹息

(木兰诗片段)

四、实验的体会

知道部分远程操控的操作和免密码登录,自己还是那么粗心,一开始就打错一个字母,搞了很久才发现。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-13 03:48:30

SSH公钥认证的相关文章

SSH公钥认证+优化

一 ssh公钥认证流程: sshclinet机器:产生公私钥(公钥相当于一把锁) sshclient:将公钥发给sshserver(抛出锁子) sshclinet去连sshserver不需要密钥 ? 二 ssh优化 cat /etc/ssh/sshd_config 追加一下 Port 22#ssh连接默认的端口 PermitRootLogin yes #root用户黑客都知道,禁止它远程登录 PermitEmptyPasswords no #禁止空密码登录 UseDNS no #不使用DNS G

ssh公钥认证原理及设置root外的其他用户登录ssh

1)创建其他用户 useradd [-d 登录目录] [-G ssh][用户名] 一定要将用户添加到ssh组不然无法没有权限登录ssh 2)设置ssh不允许root登录 vi /etc/ssh/sshd_config 找到 PermitRootLogin yes 修改为PermitRootLogin no 并在尾部添加 AllowUsers  [用户名列表] 然后重启ssh服务,/etc/init.d/ssh restart 3)如何使用公钥认证 先解释下什么是公钥密钥: 公钥私钥是不对称加密方

Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密:另一个称为密钥(private key),只有拥有者才能看到,用于解密. 在使用jenkins自动构建并远程登录服务器进行发布应用的时候,需要使用SSH公钥认证来解决登录服务器的问题. 其实很简单,只需要两个指令即可. ssh-keygen -t rsa -P '' ssh-copy-id -i ~/.ssh/id_rsa.pub <IP> 假设有两台服务器,A是Jenkins构建服务器,

Centos7 Ansible 配置SSH公钥认证

一.简介 Ansible的强大之处在与playbooks中,但是要想很好的使用playbooks,我们首先要具备一些基础.如:如何写一个一次性的脚本命令?怎么知道有哪些模块?各个模块是如何使用的?等. 通过本文,可以了解如何使用一次性命令和部分模块的使用. 安装好Ansible之后,要开始工作,还需要创建一个被控制主机列表清单.默认读取/etc/ansible/hosts,如果该文件不存在,则要收到进行创建. [[email protected] ~]# cat /etc/ansible/hos

linux配置ssh公钥认证,打通root用户的免密码输入的scp通道

1.ssh-keygen ssh-keygen是unix-like系统的一个用来生成.管理ssh公钥和私钥的工具. 2.用法 常用的重要的选项有: -b num   指定生成多少比特长度的key,单位为b,默认为1024b -t    指定生成key的类型,也就是使用哪一种加密算法,可选的有rsa1 | rsa | dsa 3. [[email protected] ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Ent

CenOS6.3 ssh 公钥认证报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

转载自 http://laowafang.blog.51cto.com/251518/1364298 1.说明: ssh无密码用户远程登录,一直以来使用是debian操作系统,对用户目录权限要求没有关注过,生成了密钥,放对位置直接就可以使用,今天测试ansible工具,用到了CentOS6.3发现它对目录权限要求比较严格,本博文仅仅记录一下本次权限修改操作. 2.操作记录 (1)创建用户: ansible (2)修改sshd_config文件 # vi /etc/ssh/sshd_config

linux 添加用户并添加ssh公钥认证

uesradd -m dev passwd dev (可省略) su - dev (加横线为使用dev环境变量,不加则使用root环境变量) cd /home/dev mkdir .ssh chmod -r 700 .ssh cd .ssh && touch authorized_keys cat id_rsa.pub > authorized_keys (将客户机的公钥添加到此文件中) chmod 600 authorized_keys ssh -vvv [email protec

SSH公钥登录访问(配置实验)

ssh公钥认证配置: 本地(10.10.86.102) [[email protected] ~]# ssh-keygen -t rsa -P '' 密码为空,则输入密码时之间按ENTER回车 -P '' ,表示密码为空,也可以不按-P,则要按三次回车 id_rsa        私钥 id_rsa.pub    公钥 不同类型的密钥 ssh-keygen -t dsa ssh-keygen -t rsa(一般使用ssh的rsa密钥) ssh-keygen -t rsal 在本地~/.ssh/目

ssh 服务器之间公钥认证方式的配置

前言 项目中需要编写脚本在服务器之间上传或者下载文件,但没有相关服务器来测试脚本,于是就着手安装两台server,然后用ssh的相关命令去配置server之间公钥认证登录. 步骤 1. 在VM Box下面安装两台Linux Server,并且都选用了桥接的网络类型,这样两台server会有自己独立的IP 2. 当前server上使用ssh命令去连接另外一台server,由于公钥认证登录还没有配置,这时候是需要输入password才可以登录 命令: ssh [user]@[hostname|ip]