免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1797 | 回复: 1

[其他] openssh的三个应用范例--喜欢无账号和密码的自动化运维脚本的运维人士可以看看 [复制链接]

论坛徽章:
24
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2016-07-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
发表于 2014-12-02 11:29 |显示全部楼层
1.在很久前,大家都习惯使用rsh/rcp/rlogin来远程执行各种shell命令,但是随着现在对安全的**程度越来越高,还在使用这些命令就真的out了,现在ssh和scp已经在替代之前的做法了。

2.为何会提到非交互式脚本,当你配置好openssh客户端和服务端rsa密钥后,你不仅仅可以在客户端那台linux或者windows对远程的linux做任何交互式操作,还可以免输账号和密码对远程的linux做非交互式任何操作。这里的任何是指你可以执行远程那台linux的任何命令,就像在本地操作一样。当然自动是自动了,虽然安全性比rsh这些要高很多,但是还是有一定的风险,比如说别人拿到你的私钥,你又没在openssh服务端做任何安全设定。所以可以的话密钥最好定期更换,更换其实也简单,还是用非交互式脚本一键搞定,当然也可以让权限在可控范围之内的账号做这些非交互操作,不一定要用root。

以下只是实现非交互式操作进行连通的方法,更多应用你的shell有多强,你非交互就有多强,如果你的bat也够强,你可以在windows下对远程的linux做任何操作,当然还是有一点点的局限性,为何,因为毕竟危险,有问题你看不到错误报告,所以客户端尽可能在linux下作业,除非你知道你在windows写的脚本不会对远程的linux系统有任何影响。




例一:在主控端免輸賬號和密碼登錄到被控端的openssh服務端上。也就是ssh登錄到遠程服務器上。
8.1.1 第一步:在主控端生成rsa公鑰和私鑰
ssh-keygen -b 2048 -t rsa或者直接ssh-keygen(新版本openssh客户端可以直接输入该命令生成) 默認他就是生成rsa公鑰和私鑰。
-b 生成密鈅的位數
-t  密鈅類型有rsa和dsa等

8.1.2 第二步將主控端的公鑰id_rsa.pub複製到被控端的 家目錄/.ssh/目錄下,并改名為authorized_keys。你要使用哪個賬號登陸就複製到哪個家目錄下。


8.1.3 第三步將主控端的私鑰保存到你要用來遠程登陸賬號的家目錄/.ssh目錄下。






8.2 範例二:實現putty等第三方ssh客戶端軟體免輸密碼登陸到linux下的openssh服務端。
8.2.1 方法一:使用puttygen.exe生成公鑰私鑰
首先是用puttygen.exe生成一對公鑰和私鑰(單擊generate生成時候,該軟體提示你要不停的左右移動鼠標),由於puttygen,exe生成的公鑰是無法直接在linux下是用。所以必須自行在 用戶家目錄/.ssh/建立一個文件authorized_keys。然後編輯它,最後把puttygen.exe生成的公鑰直接粘貼到這個文件里即可(這個生成的公鑰就是該軟體key下面的內容)。然後把私鑰存在你本地系統的任意目錄下。
其次打開putty軟體-單擊左邊側欄的connection-ssh-auth-browse選擇你剛剛保存的私鑰的文件。然後再選擇connection-data,再auto-username填寫你要使用自動登陸的帳號。最後選擇session,輸入遠程linux主機ip,再取一個易記的名稱,單擊save即可。下次登陸的話直接單擊你保存的那個名稱,既可實現無需輸入帳號和密碼,使用rsa方式登陸。


8.2.2 方法二:直接使用linux系統下的公鑰和私鑰。
該方法就簡單多了,直接把linux下你使用ssh-keygen(或其他軟體)生成的私鑰文件複製出來,然後使用puttygen.exe,打開菜單欄位conversions,單擊import key,然後單擊save private key 保存為任意名稱的私鑰文件。這樣的話,putty直接可以使用這個私鑰連接到該台服務器上。




8.3 范例三:非交互式使用scp实现linux服务器之间脚本化复制文件。以及在windows和linux之间使用pscp实现脚本化非交互式复制文件。

通过范例一的方式配置了主控端A和被控端B无密码访问,就可以实现在主控端A(linux系统上)上用scp非交互式(脚本化无需输入账号和密码)复制主控端A文件到被控端B服务器上或从被B复制到A。
那么下来要实现windows主控端A下非交互式脚本化复制文件到B(linux系统)被控端上方法就更简单了。去putty官网下载pscp命令文件。使用如下范例方式就可以实现了:pscp命令同scp命令格式几乎一样。
pscp -l root -i 9.15id_rsa.ppk passwd 172.16.9.15:/root
复制本地到远端 要复制远端文件到本地,上面就倒过来就好啦。
-l 账号
-i 后面跟你的私钥文件
Passwd 是你要复制的本地文件名称
172.16.9.15:/root 就是你要复制文件到9.15的root目录下。更多命令格式请参考pscp自带命令帮助提示.

论坛徽章:
3
白羊座
日期:2014-08-25 15:04:112014年中国系统架构师大会
日期:2014-10-14 15:59:002015元宵节徽章
日期:2015-03-06 15:52:30
发表于 2014-12-03 13:06 来自手机 |显示全部楼层
谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP