老高的测试环境中机器很多,每次登录都要输入密码很烦人,下面的脚本可以批量导入公钥到指定多个ip中,使用后记得把文件删除掉!
sshpass在macos下可能不好搞定,brew因为安全问题默认不给安装,可以通过别人写好的脚本来安装,其他系统自己想办法!很简单。 brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
...
在mac上ssh自己的服务器后总是会断开,比如wget某一个东西,或者tar一个大文件,如果你总是受此困扰,不妨尝试一下此文里的配置。
...
给容器赋予FTP和ssh登录在调试和使用阶段都是很不错的功能!下面看老高怎么实现的。
(基于ubuntu:xenial)
...
SSH协议真是了不得!
光是看标题,大家会看的云里雾里的,倾听老高细细道来!
...
与ServerAliveInterval的设置有关
vim ~/.ssh/config # add ServerAliveInterval 60
你是不是已经厌倦了每次git push的时候每次都要输入用户名密码,使用下面的方法可以让你使用ssh协议通过密钥验证的方式让你得到解脱。
有两种修改方法
不过再实施前,请先准备好自己的密钥
ssh-keygen -t rsa -C "your_name" 然后登录https://github.com/settings/ssh,添加当前计算机的~/.ssh/id_rsa.pub公钥内容到github。
之后我们使用ssh git@github.com验证是否添加成功,如果返回以下内容,即代表添加成功!
Hi phpgao! You’ve successfully authenticated, but GitHub does not provide shell access.
下一步就是让我们的git使用公钥验证。
clone 保存你的最后一次修改并提交。
删除项目
使用下面的命令clone项目
# 采用ssh的方式克隆项目 # someaccount/someproject.git 中 some account为github用户名/someproject为仓库名 git clone git@github.com:phpgao/BaiduSubmit.git 修改https git remote set-url origin git@github.com:someaccount/someproject.git 顺便提一下,老高的git push总是报warning: push.default is unset错误,今天终于知道为啥了。原来是版本兼容性的原因,低版本的git push如果不指定分支名,就会全部推送,而新版只会推送当前分支。
解决的办法也很简单,我们只需要明确指定应该推送方式即可,至于选择哪种方式,It’s up to you.
# 全部推送 git config --global push.default matching # 部分推送 git config --global push.default simple 完
SSH是管理VPS的重要途径,所以SSH经常会受到攻击,所以我们需要将SSH武装起来,保护我们VPS的安全。
SSH服务的配置文件位于/etc/ssh/sshd_config,我们的安全设置都是围绕此文件展开,所以修改前最好先备份一次,以免出现无法登陆的情况。
修改完不要忘了执行
service sshd restart ...
自从使用mac以后,ssh连接总是超时成了老高的一个心病啊,只要一小会儿不动电脑,远程就失去相应,或者干脆直接提示broken pipe,然后断掉。现在终于有了算是能接受的解决办法。
方法一:直截了当砍掉法 ~.,是的,你没有看错!这个组合命令就是主动断开ssh的命令,不行自己问问man。
方法二:修改配置文件 服务器和客户端每隔一定的时间会发一个KeepAlive请求,避免因为路由器或线路的限制而断线,例子中的60s可以因具体的环境改变。
针对服务器端 修改/etc/ssh/sshd_config,修改ServerAliveInterval一项,而ServerAliveCountMax表示如果失败重试的次数
ServerAliveInterval 60
ServerAliveCountMax 3
针对客户端 vi /etc/ssh_config
ClientAliveInterval 60
ClientAliveCountMax 3
完
步骤一 关闭ssh的gssapi认证
vi /etc/ssh/ssh_config
注释掉如下两行
GSSAPIAuthentication yes GSSAPIDelegateCredentials no 步骤二 关闭ssh的UseDNS
vi /etc/ssh/sshd_config 注:ubuntu的sshd_config文件没有UseDNS参数,而据我了解,其它类*NIX、*BSD操作系统的sshd_config都有UseDNS参数,且它们缺省都是"UseDNS yes",那估计ubuntu的sshd_config虽然没有UseDNS,那它缺省也是"UseDNS yes"了
于是,在sshd_config末尾处插入如下行
UseDNS no 然后执行指令"/etc/init.d/ssh restart",重启ssh服务,配置生效
经测试,使用此方法后,ubuntu的认证时间大大缩短,原来其登录认证一般耗时在10秒以上15秒左右,有些时候甚至达到20多秒到30秒左右,而经过此修改,ubuntu的登录认证时间将会缩短在3秒以内。
安装完Ubuntu后自然需要使用ssh远程管理,但是sudo apt-get install openssh-server后虽然安装成功,但是总是提示
Unknown job: ssh 百度之,未解决 google之,
运行
sudo /usr/sbin/sshd
提示
Missing privilege separation directory: /var/run/sshd (缺少权限分离目录)
然后运行
sudo mkdir /var/run/sshd
sudo /usr/sbin/sshd
netstat -nlt
应该能看到22端口已经启用!