mac linux ssh免密登陆的三种方式

在linux中经常要用ssh登陆,感觉很麻烦。我已经为这件事件折腾过好几次啦。这次准备总结一下

1、使用ssh公钥免密登陆

命令使用:

ssh-keygen -t rsa #不管中途遇到啥提示,直接回车

cd ~/.ssh

cp id_rsa.pub authorized_keys

scp authorized_keys username@host:~/.ssh/

之后再使用ssh username@host 就可以不用输入密码直接登陆服务器啦。

但是有时候,我不怎么想把自己的公钥到处传,虽然它本来就是用来到处传的。那么我要怎么办呢?来看第二种方法吧

2、使用sshpass命令

使用这个命令还需要自己额外安装。不同的系统请自行搜索安装方式吧。

安装好之后,以下命令就可以带上密码的。简单吧!有它就不用到处传公钥了。

这个方式惟一的缺点就是无处不在的墙,有时候安装得真的慢。

sshpass -p password ssh username@host

找到自己的文档,来安装sshpass居然遇到了问题,把安装方式也加到这里了。

mac安装sshpass:

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

安装完之后,发现自己还是没法按上面的命令正常使用sshpass,简直了。

一运行就提示:sshpass: Failed to run command: No such file or directory

按以下方式运行就可以了:

sshpass -p password ssh user@host

3、mac上的expect

这个方式仅做记录,因为它不但装的东西多,还要写脚本。简直麻烦。

有兴趣的小伙伴自己看这个博客吧。

注意:expect脚本不能使用sh xx.sh来进行运行,因为它使用的是expect, 不是shell。

运行方式如下:./aa.sh ip 或者使用expect aa.sh ip

#!/usr/bin/expect


set IP     [lindex $argv 0]
set PASSWD "pFZcCeGq3phl"

spawn ssh -tt  root@$IP
expect {
    "(yes/no)?" {
        send "yes\r"
        expect "password:"
        send "$PASSWD\r"
        }
    "password:" {send "$PASSWD\r"}
    }
interact
expect eof

mac下通过ssh脚本实现免账号密码连接运服务器_badmoonc的博客-CSDN博客_mac ssh脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值