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>>> ~/.</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>] && </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>] && [[ </code><code>"$pubKey"</code> <code>=~ ^</code><code>ssh</code><code>-rsa.*AAAA ]] && </code><code>echo</code> <code>"$pubKey"</code> <code>>> ~/.</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 >> ~/.ssh/authorized_keys </code>
<code>4、将私钥导入至本地主机</code>
<code>5、登陆</code>
本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1955070,如需转载请自行联系原作者