MacBook Pro 下 Alias + ssh免密登录 =>形成脚本提高效率

吃可爱长大的小学妹 提交于 2020-03-01 06:07:53

#① MacBook Pro 下Bash Shell and Zsh 利用Alias 简化命令

直接上菜

    1.编辑vim ~/.bash_profile,如果你以前没新建过,那么新建它;有的话就打开修改添加。
     如果是zsh的话,vim ~/.zshrc,道理相同,在最后面追加就好咯。

    2.添加alias 9.2="ssh root@192.168.9.2"    !!!等号前后不能出现空格!!!

    3.bash下执行"source ~/.bash_profile",此条命令是使bash重新载入配置令刚才命令生效。
      如果是zsh,就source ~/.zshrc

    4.以后需要使用上述复杂命令,只需在bash or zsh 中输入"9.2"即可。

now不用每次都手动输入ssh root@192.168.9.2这种命令了,但是还是需要输入密码,那么我们如何实现免密登录呢?这就是下面第二条

#② MacBook Pro 下Bash Shell 实现ssh免密登录 Mac和远程Linux服务器SSH自动登录设置 第一步:生成密钥。在终端下执行命令: ssh-keygen -t rsa 一路回车,各种提示按默认不要改,等待执行完毕。然后执行: ls ~/.ssh #可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥) #公钥是加密,私钥是解密(不要外传私钥) 第二步:放置公钥到Linux服务器。使用scp命令: scp ~/.ssh/id_rsa.pub root@192.168.9.2:/root/.ssh/ 然后把id_rsa.pub的内容加入到服务器端的默认验证文件authorized_keys,执行: #先登录到远程服务器 cd ~/.ssh cat -n /root/.ssh/id_rsa.pub >> authorized_keys #将公钥内容加入到authorized_keys文件,有的话添加(有的话不要删掉,因为别人可能做过免密登录呀),没有则新建一个就行

以上比较要注意的是: 公钥要放在登录服务器所用的账号的家目录下,比如你用 abc登录远程服务器,就要把公钥 放到 /home/abc/.ssh/下, authorized_keys文件也是在这个目录下。

如果要设置很多服务器,这样难免会麻烦很多,还是需要手动去设置很多服务器,于是我写了两个脚本

脚本一:脚本名字first.exp

    #!/usr/bin/expect

    set ip [lindex $argv 0]
    set pw [lindex $argv 1]

    spawn scp ~/.ssh/id_rsa.pub root@$ip:/root/.ssh/authorized_keys
    expect "*yes/no*" {send "yes\r";exp_continue} "password:" {send "$pw\r"}
    expect eof
该脚本执行即可,每次执行都需要输入两个参数,机器ip和机器密码,比如: ./first.exp 192.168.9.2 password
也可以写个脚本for循环,见脚本二:
脚本二:repeat.sh
    #! /bin/sh

    for num in `seq 1 6`
    do
        ./first.exp "192.168.9.${num}"  "123456"
    done
执行该脚本./repeat.sh 即可同时搞定192.168.9.1——6这六台机器的免密登录~

well done~

###donation: 如有捐赠意向的朋友,请捐赠到支付宝账号:qdcccc@gmail.com 账户名:杨春炼

###ask for help: 如需帮助,请加QQ:1028750558或微信:lian-ye

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!