天天看点

脚本---免密码登陆练习

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<code>  </code><code>## 测试.ssh目录文件是否存在,否则创建之</code>

<code>  </code><code>826  [ -d ~/.</code><code>ssh</code> <code>] || </code><code>mkdir</code> <code>-m 600 ~/.</code><code>ssh</code>

<code>  </code> 

<code>  </code><code>## 查看权限</code>

<code>  </code><code>827  </code><code>ls</code> <code>-dl ~/.</code><code>ssh</code>

<code>  </code><code>## 获取文件名</code>

<code>  </code><code># fgrep "auth" /etc/ssh/sshd_config</code>

<code>  </code><code>## 查看authorized_keys是否存在,否则创建之</code>

<code>  </code><code>828  [ -f ~/.</code><code>ssh</code><code>/authorized_keys</code> <code>] || </code><code>touch</code> <code>~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>  </code><code>## 设定其权限</code>

<code>  </code><code>829  </code><code>chmod</code> <code>0600 ~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>  </code><code>830  </code><code>ls</code> <code>-l ~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>  </code><code>## IO重定向追加至文件中(公钥在远程主机,私钥在本地主机。远程利用公钥加密一个数据,看本地主机能否解密,能则通过登陆系统。否则,....)</code>

<code>  </code><code>831  </code><code>echo</code> <code>"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEAp9S/ev+YWkiEnAO6mziN2JOO21YbHK0I2fHwaIFW83OMFAWk9Bc+Kv0F6WkZ8ZW0dfgU0iv0W0SzJAc8gsedE6e1R3ALr7oEfhhvGk8+3/Bb22Ml2GqRgPJo8htOUvx5"</code> <code>&gt;&gt; ~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>  </code><code>## 查看文件中的内容 </code>

<code>  </code><code>832  </code><code>cat</code> <code>~/.</code><code>ssh</code><code>/authorized_keys</code>

脚本

<code>#!/bin/bash</code>

<code># Version: 0.0.12</code>

<code># Author: Lcc.org</code>

<code># Description: Small toys</code>

<code>[ -d ~/.</code><code>ssh</code> <code>] || </code><code>install</code> <code>-d -m 700 ~/.</code><code>ssh</code>

<code>[ -f ~/.</code><code>ssh</code><code>/authorized_keys</code> <code>] || </code><code>touch</code> <code>~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>Perm=$(</code><code>ls</code> <code>-l ~/.</code><code>ssh</code><code>/authorized_keys</code> <code>| </code><code>cut</code> <code>-d </code><code>' '</code> <code>-f1)</code>

<code>[ </code><code>"$Perm"</code> <code>!= </code><code>"-rw-------"</code> <code>] &amp;&amp; </code><code>chmod</code>  <code>0600 ~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>read</code> <code>-p </code><code>"Enter a pubkey: "</code> <code>pubKey</code>

<code>[ -n </code><code>"$pubKey"</code> <code>] &amp;&amp; [[ </code><code>"$pubKey"</code> <code>=~ ^</code><code>ssh</code><code>-rsa.*AAAA ]] &amp;&amp; </code><code>echo</code> <code>"$pubKey"</code> <code>&gt;&gt; ~/.</code><code>ssh</code><code>/authorized_keys</code>

公钥来源:

    1、本地主机上生成公钥和私钥,将公钥追加至远程主机的 ~/.ssh/authorized_keys文件中

    2、非本地生成公钥和私钥,将公钥追加至远程主机的 ~/.ssh/authorized_keys文件中,私钥放于本地

生成密钥方法:

    1、本地

    2、linux主机

linux主机:

24

25

26

27

28

29

30

31

32

33

34

35

36

<code>ssh</code><code>-keygen [OPTIONS...]</code>

<code> </code><code>-b bits  指定密钥长度。对于RSA密钥,768,1024,2048,4096,8192</code>

<code>-f filename  指定密钥文件名。</code>

<code>-t </code><code>type</code>  <code>指定要创建的密钥类型。可以使用:</code><code>"rsa1"</code><code>(SSH-1) </code><code>"rsa"</code><code>(SSH-2) </code><code>"dsa"</code><code>(SSH-2)</code>

<code>-P passphrase  对私钥加密</code>

<code>1、生成密钥</code>

<code>[root@localhost ~]</code><code># ssh-keygen -b 768 -f /tmp/primarykey -t rsa -P ''</code>

<code>Generating public</code><code>/private</code> <code>rsa key pair.</code>

<code>Your identification has been saved </code><code>in</code> <code>/tmp/primarykey</code><code>.</code>

<code>Your public key has been saved </code><code>in</code> <code>/tmp/primarykey</code><code>.pub.</code>

<code>The key fingerprint is:</code>

<code>00:4f:93:1c:d5:99:cb:b6:10:d8:4d:71:62:3e:bb:80 [email protected]</code>

<code>The key's randomart image is:</code>

<code>+--[ RSA  768]----+</code>

<code>|    ..+*.+=+.    |</code>

<code>|     ++.oo=o     |</code>

<code>|      o  oo.     |</code>

<code>|       o. +o     |</code>

<code>|      E So..     |</code>

<code>|         ...     |</code>

<code>|          .      |</code>

<code>|                 |</code>

<code>+-----------------+</code>

<code>2、查看</code>

<code>[root@localhost ~]</code><code># ls /tmp/primarykey*</code>

<code>/tmp/primarykey</code>  <code>/tmp/primarykey</code><code>.pub</code>

<code>3、导入公钥至~/.</code><code>ssh</code><code>/authorized_keys</code>

<code>[root@localhost ~]</code><code># cat /tmp/primarykey.pub &gt;&gt; ~/.ssh/authorized_keys </code>

<code>4、将私钥导入至本地主机</code>

<code>5、登陆</code>

本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1955070,如需转载请自行联系原作者

继续阅读