测试开发

mac与linux系统公匙与私匙的生成方法

LensNews

一、生成公钥和私钥

mac默认提供了ssh-keygen,我们可以使用此工具来生成公钥和私钥。
wanghaifengdeiMac:~ wanghaifeng$
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/wanghaifeng/.ssh/id_rsa):
/Users/wanghaifeng/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/wanghaifeng/.ssh/id_rsa.
Your public key has been saved in /Users/wanghaifeng/.ssh/id_rsa.pub.
The key fingerprint is:
52:76:8b:e1:e1:8b:71:dc:2c:6f:bb:5b:6f:09:ea:30 wanghaifeng@wanghaifengdeiMac.local
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|        = .      |
|       * B .     |
|      o S +      |
|       = +  .    |
|      . E o... . |
|         +.o .o  |
|         .=o ..  |
+-----------------+

二、配置 SSL 证书

无论你用 DV 还是 OV 生成私钥,都需要填写一些基本信息,这里我们假设如下:
域名,也称为 Common Name,因为特殊的证书不一定是域名:example.com
组织或公司名字(Organization):Example, Inc.
部门(Department):可以不填写,这里我们写 Web Security
城市(City):Beijing
省份(State / Province):Beijing
国家(Country):CN
加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位
按照以上信息,使用 OpenSSL 生成 key 和 csr 的命令如下
1、生成密匙
openssl req -new -newkey rsa:2048 -sha256 -nodes -out testerhome.csr -keyout testerhome.key -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=TesterHome Inc./OU=Web Security/CN=testerhome.com"
wanghaifengdeiMac:~ wanghaifeng$ openssl req -new -newkey rsa:2048 -sha256 -nodes -out testerhome.csr -keyout testerhome.key -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=TesterHome Inc./OU=Web Security/CN=testerhome.com"
Generating a 2048 bit RSA private key
....................................................................................................................................+++
...........................................................+++
writing new private key to 'testerhome.key'
-----
wanghaifengdeiMac:~ wanghaifeng$ ls
AndroidDev Downloads Pictures UIAutoTest jenkins 优才计划
ApiAutoTest Fiddler2 Public WebAutoTest pp25 本人开发
Applications Library Sites buildiOS smart_monkey_result
CentOS Monkey Software docker testerhome.csr
Desktop Movies SonarSource git.yn.com testerhome.key
Documents Music Tools iOSDev 快盘
wanghaifengdeiMac:~ wanghaifeng$ cat testerhome.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICxDCCAawCAQAwfzELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1YW5nZG9uZzES
MBAGA1UEBxMJR3Vhbmd6aG91MRgwFgYDVQQKEw9UZXN0ZXJIb21lIEluYy4xFTAT
BgNVBAsTDFdlYiBTZWN1cml0eTEXMBUGA1UEAxMOdGVzdGVyaG9tZS5jb20wggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKIABJJ+CIbHLLE3H/50uysjE7
CSl1uf0Rb9DYeu1YzvEoMURu6uKx7Udi2gHfNn4+uvpXpr5RXpfR21xarCJ6/JI/
rH78uzgI/clw8QRlr2sU8+bHl7kZ4Rd8HmbMpAyVOb7C17SzN806WGX8jz2viDy6
x286A7WYWio2HvDCTC4bQfJjIEI4KELuUkwPx3O+79pWleAy1pCLP+g77Np0CHBB
YV2H2CCtcUtcmyKl5AbrvHbF9sSzfR5/Uvbez8CuxOZx++R2RZqXWS8tNiizcary
zWLYfVoc+6GL9zRcFJ2ndYreCK3faeQKlE7+nu/ARVpITGO2VvRHITbFC8P1AgMB
AAGgADANBgkqhkiG9w0BAQsFAAOCAQEAJRYDHawoqxsYLqFwo9YwVjSxugyjMBoI
bD7dqezpG3xEGYu+XhLqfSr3amKl10mJ0YSAopgPCHtqCRUhs6CYcI7h0kJJ7AgY
5Hyr0McggvgeqZhscZpCCJ5iKbR1WxYa58d8fizK1HY8BLdOP6SB89OcdOsIFtxc
d3aRPkjW3DTYLTAJZ/yuBg4R1wqfDhuolJaTS+Pp/svlZMAORaVZ+qd6EQSf736q
0rXtr6Qoz19Ofv0IpBiTRAco2DbuWQccSPJtOav6J1KBYthgymMEfn9iygQXddD9
zFfbxabAoy4GMLv2M8ou8LH+FY7uvBxWBoVVCQCTO4G4a+La6ZIDtQ==
-----END CERTIFICATE REQUEST-----

三、MAC下ssh免密码登录远程服务器

工作上换了个MAC AIR本本,工作环境要恶搞一阵子了。首先是和远程Linux服务器SSH自动登录设置,同时此设置OK以后,Git也可以免密码执行了。
第一步:生成密钥。在终端下执行命令:
ssh-keygen -t rsa
一路回车,各种提示按默认不要改,等待执行完毕。然后执行:
ls ~/.ssh
#可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥)
第二步:放置公钥到Linux服务器。使用scp命令:
scp ~/.ssh/id_rsa.pub cssor@cssor.com:/home/cssor/.ssh/
然后把id_rsa.pub的内容加入到服务器端的默认验证文件authorized_keys,执行:
#先登录到远程服务器
cd ~/.ssh
cat -n /home/cssor/.ssh/id_rsa.pub >> authorized_keys #将公钥内容加入到authorized_keys文件,没有则新建一个就行
第三步:配置本地ssh config文件。执行:
vi ~/.ssh/config
加入以下内容:
Host cssor_server #别名,域名缩写
HostName cssor.com #完整的域名
User cssor #登录该域名使用的账号名
PreferredAuthentications publickey #有些情况或许需要加入此句,优先验证类型ssh
IdentityFile ~/.ssh/id_rsa #私钥文件的路径
经过以上操作以后,已经大功告成,感谢一同事帮忙,虽然他用的是Ubuntu系统。
使用ssh cssor_server或ssh cssor.com就可以直接登录到远程服务器了。并且如果git服务器也是搭建在同一个Linux主机上,本地执行git pull等也不需要密码再次登录了。
以上比较要注意的是: 公钥要放在登录服务器所用的账号的家目录下,比如你用 abc登录远程服务器,就要把公钥 放到 /home/abc/.ssh/下, authorized_keys文件也是在这个目录下。我曾因为放错账号目录,导致失败。
(1)

本文由 小蜜蜂信息网 作者:admin 发表,转载请注明来源!

关键词:
LensNews

热评文章

发表评论