SSH使用技巧

SSH免输入密码

原理是依赖证书去认证,从而免除密码输入。
通过ssh-keygen生成一对公私钥,是否使用passphrase可以根据个人喜好。(其实使用证书就是为了方便而已,我是不喜欢其他密码了。) 然后scp家目录下的.ssh/id_rsa.pub(或者dsa等公钥文件)到目的机器上。
命令过程:
本地
ssh-keygen
scp ~/.ssh/id_rsa.pub B:
 
ssh到B主机(这里第一次必须要输入密码)
(mkdir .ssh如果家目录下不存在该目录)
mv id_rsa.pub .ssh/authorized_keys
或者:cat id_rsa.pub >> .ssh/authorized_keys
 
之后本地就可以直接登录到B了,而不需要密码。不过也有例外情况,至少我就碰到个奇怪的状况,怎么也登不过去。当然策略等我都检查过了。

SSH始终保持连接

原理是依赖ControlMaster的能力,保持socket文件存在。
首先创建配置文件,可使用  ~/.ssh/config 或者/etc/ssh/ssh_config
这里我使用~/.ssh/config 内容如下:

Host 61.74.58.123 61.74.58.122
        ControlMaster auto
        ControlPath ~/.ssh/master-%r@%h:%p

简单解释下,我要针对的是上述2个IP的主机,其他不需要。然后用到ControlMaster auto,否则默认是no的状态。%r 代替用户名,%h代替主机,%p代表端口。这个是表示生成的socket文件

然后命令:

ssh -M -N -f 61.74.58.123

-M 表示使用ControlMaster 模式,这里似乎可有可无,都会去用的

-N 表示不执行远程的命令

-f 后台执行命令

-N与-f配合,表示告诉ssh 我不需要执行命令,给我直接在后台工作。这样就使一条连接保持着了。

最后,直接再使用ssh 61.74.58.123连接,而且速度很快,不需要再输入密码。不过目前还有个问题,有些服务器,会在一段时间不操作后自动断开连接,这样那个socket就没用了。可能可以用后台定期执行一些命令等解决。同样用-f参数。具体尚未试验。

如果要关闭服务器,只需要输入

ssh -O exit 61.74.58.123

通过SSH Forward 建立安全连接

表示连接到server上并将server的80和本地的12345建立条tunnel,然后访问本地的12345端口即可,此操作会连接至远端主机,不是后台操作

ssh serverip -L 12345:localhost:80
 links http://localhost:12345/

后台操作

ssh serverip -f -L 12345:localhost:80 sleep 10

ssh serverip -Nf -L 12345:localhost:80

-L 表示本地端口重定向到远端端口,12345表示绑定的本地端口,localhost表示远端主机上的ip地址,即远端主机上的loopback,80表示远端要被定向到的端口

-f 后台

-N 不执行命令(不加就必须执行条远端命令)

通过SSH 跨内网
方法是使用与-L对应的-R参数,表示将远端的端口映射到本地
ssh serverip -R 12345:localhost:80
表示当访问serverip的12345端口时,等于访问本机的80
12345指远端要绑定的端口,localhost表示本地主机的ip地址,80表示要重定向到的本地主机的端口
实际应用:
假设A内网机器,B公网机器,有公网IP,B要访问A的ftp
A:ssh B -R 12345:localhost:21
B:ftp localhost 12345
如果存在C,也要访问A的ftp,那么B要做的是修改sshd_config:
GatewayPorts yes
因为默认端口重定向,监听的ip是loopback的

SSH代理
使用ssh serverip -D 1080

putty配置方法:

在connection->ssh->tunnels,输入source port(这个是你本地监听的端口),然后destination下选择dynamic。然后连接到proxy 服务器,输入用户名密码登录,就不用管他了。

之后设置本地的socks代理即可,端口为1080,注,监听在loopback,默认。浏览器的话就在代理设置里加上127.0.0.1 1080的代理。

 
 
分类: Linux
标签: hacklinuxssh

SSH使用技巧的更多相关文章

  1. Linux SSH安全技巧

    SSH服务器配置文件是/etc/ssh/sshd_conf.在你对它进行每一次改动后都需要重新启动SSH服务,以便让改动生效. 1.修改SSH监听端口默认情况下,SSH监听连接端口22,攻击者使用端口 ...

  2. ssh 使用技巧

    参考:https://deepzz.com/post/how-to-setup-ssh-config.html SSH Config 那些你所知道和不知道的事 预览目录 配置项说明 相关技巧 管理多组 ...

  3. ubuntu 上 SSH scp 技巧

    参考:https://deepzz.com/post/how-to-setup-ssh-config.html SSH(Secure Shell)是什么?是一项创建在应用层和传输层基础上的安全协议,为 ...

  4. 一些 ssh 小技巧

    本文来自网易云社区. 作者:沈高峰 ssh 经常需要使用的,每次使用都  ssh  abc@XXX.def.com -p 12138 -i ~/.ssh/id_rsa 来一遍显然太麻烦了,下面分享一点 ...

  5. ssh 常用技巧

    连接中转 有时候你可能需要从一个服务器连接另外一个服务器,比如在两个服务器之间直接传输数据,而不用通过本地电脑中转: www1 $ scp -pr templates www2:$PWD (顺便说一下 ...

  6. 何为SSH协议?

    该文来自百度百科,自我收藏. SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH ...

  7. 【转】25个必须记住的SSH命令

    1.复制SSH密钥到目标主机,开启无密码SSH登录 ssh-copy-id user@host 如果还没有密钥,请使用ssh-keygen命令生成. 2.从某主机的80端口开启到本地主机2001端口的 ...

  8. ubuntu16.04服务器配置ssh免密登录

    原版资料英文,链接在此  https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 在客户端操作 ssh-k ...

  9. SSH 25 tips

    port ssh -Nf -L 9800:192.168.1.132:22 -l root 10.100.125.76 -v ssh -l root 127.0.0.1 -p 9800 scp -P ...

随机推荐

  1. c# 数据类型转换 as(C# 参考)

    as    运算符类似于强制转换操作.               但是,因此,如果转换是不可能的,as 返回 null 而不引发异常.  请看下面的示例: expression is type ? ...

  2. Android 2.3 版本中链接边框问题解决

    在做移动互联网开发的过程中,同样需要考虑到移动终端(如手机.平板)的不同版本浏览器兼容问题,在Android 2.3 版本的默认浏览器中有一个bug-会自动给所有链接文本在点击操作过程中加黄色或绿色边 ...

  3. 收集的VS2013的使用小技巧( 不断总结中)

    对于经常使用vs的朋友,如果能用键盘直接做的事,还是键盘更便捷点,现在我就把自己遇到的一些给写下来. 1.对一个函数的说明 先写一个函数,以及参数,完成后,在函数上输入///,vs会自动补全说明的信息 ...

  4. Delphi三层网络架构代码实现

    Delphi三层网络架构代码实现 1 .三层网络的概念 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为: 表现层(UI).业务逻辑层(BLL).数据访 ...

  5. 安德鲁斯Selector简介

    <? xml version="1.0" encoding="utf-8"? > <selector xmlns:android=" ...

  6. C++多线程分析

    我们开始谈论的线程之前先看看这些线载波前-进程. 进程,它是一个正在执行的程序的实例.是一个程序在其自身的地址空间的一次执行活动.进程是资源申请.调度.和独立执行的基本单位.进程有两部分组成: 1.操 ...

  7. Tomcat集群+Nginx+Redis服务搭建

    由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了.所以就出现了下面的内容: 1.Redis保存Session信息 为了保存Session信息在集 ...

  8. 三个创建WebStorm项目的方法

    WebStorm项目代表一个完整的解决方案和定义项目范围设置.而重点则是代码完成.代码重构.代码风格等. 因此在建立项目时,WebStorm可以通过三个方面来完成:下载远程项目.复制控制存储库项目和直 ...

  9. Spring IOC之BeanFactory

    BeanFactory提供了SpringIOC功能的基础但是它只是直接在用在和第三方框架的整合中,而且现在对于大部分的Spring用户来讲这一句成为了过去.BeanFactory和相关的接口,例如Be ...

  10. QT自动补全设置

    在工具 -> 选项 -> 环境 -> 键盘 中,找到TextEditor -> CompleteThis,修改后面的快捷键就好了 我将它修改为Alt + /