这年头不翻墙就看不到真像了,前几天整了个 ssh 代理,就研究了下自动登录。 ssh 自动登录首选就是使用 key 了,可对方不干,那就只能使用密码了。自动输入密码可以用 expect。查这个的时候发现了一个 expect-lite,发现也挺有意思的,他把写 expect 脚本简单化了,比如想 send xxx,那就用 >xxxx 就行了,想 expect yyy 那就
有时候我们不得不和网管对着干,去想办法去穿越某些防火墙,访问到我们要访问的资源。例如下面的情况,A 和 C 之间是有个墙的,不通。可有个 B 能访问到 C,而 A 又能访问到 B ,那我们可以通过你 ssh 做代理穿越那个墙。 A -> | -> C \-> B -> C 在A 上面执行下面的命令 ssh -f -N -g -L 8888:C_ip:80 B_ip参数的含义:-f 放到后台-N 不在对方机器请求 shell-g 能使得别的机器能连接 A 的那个端口-L 就是代理,具体看 man 这样,在 A 上面访问 8888 端口,就能访问到 C 的 80 端口了。 那如果是下面的网络情况,那怎么办?A 能访问到 C,但是 C 不能直接访问 A。 A [...]
是从水木上面学来的。还参考了这个。 如果你工作的环境是下面这样的,那 ssh 的 proxycommand 对你会很有用。 your pc -> gw server -> work server 一般公司的服务器的网络都会设置安全级别,防止出现安全问题。那个 gw 也叫跳板机。需要在 gw 机器上面有 nc 。 修改 .ssh/config 文件,加上 Host gw Hostname gw.abc.com Host work Hostname work.abc.com User wd ProxyCommand ssh gw nc -q 0 %h %p 2>/dev/null 这样直接 ssh work 就好了。 那个 -q 0 可能有些版本的 nc 不支持。去掉就好了。那个 %h 表示 [...]
ssh一种更加安全的登录方式是使用rsa/dsa方式来做验证。密码口令很可能被猜出来,但是用dsa方式验证的ssh,除非他弄到你的私匙,否则肯定是安全的。 ssh-keygen命令可以用来生成rsa/dsa方式的公匙密匙。 ssh-keygen或者ssh-keygen -t rsa生成rsa方式的密匙。ssh-keygen -d 或者 ssh-keygen -t dsa生成dsa方式的密匙。具体rsa和dsa的区别看 这里 。 上面的命令会在~/.ssh文件夹中生成公匙(id_*sa.pub)和密匙(id_*sa),将pub文件中的内容copy到远程服务器你的home目录下面的.ssh目录中的authorized_keys[2]这个文件中,有没有最后的那个2要看你用的是ssh1还是ssh2方式,通常都有2。 然后就是远程服务器的这些文件需要有正确的权限,.ssh目录是700,authorized_keys2文件是644。 此后再登录服务器的时候应该就不需要输入密码了。 有一个小tip,就是给服务器的ip设置一个好记的形式,那么多的ip记住不容易阿,而且每次还得一个一个输入。具体方法就是修改hosts文件,添加类似下面的内容就可以了,相当于自己做了一个dns,呵呵。 #销售server 218.x.2.128 s128 xs xiaoshou #db server 218.x.23.189 s189 db oracle 这样,以后访问s128或者s189就可以了,当然后面的xs、xiaoshou、db、oracle也都是别名,都可以用来访问。 还有一个tip,是关于term的。如果用的是urxvt,访问的远程服务器的时候可能会遇到“unknow terminal : rxvt-unicode” 类似的错误,如果出现了类似错误,会导致在服务器端vim和ls都没有颜色。解决方法是在.Xdefaults文件中添加URxvt.termName: xterm,或者.bash_profile里面自己设置一下TERM类型。
参考地址:http://www.5ilinux.com/ssh01.html 按照文档中的方法,使用SecureCRT生成公匙密匙,然后上传公匙,没问题。 用putty使用这个密匙的时候就出问题了,验证不了。 然后用putty生成公匙密匙,上传公匙,验证不了。 后来用openssh自带的ssh-keygen生成了公匙密匙,然后用putty的keygen转换了一下,用putty登陆就可以了。
★ 需求 最近公司服务器上面某个用户的帐号密码被修改了好几次。查看了一下,确实有人用他的帐号从外网ip(国外的ip)登陆过,猜想可能是他自己的电脑中木马或者什么病毒了。用户自己没有安全意识是很头痛的一个问题,其实给他们新建帐号的时候使用的都是简单密码,但是似乎都没有人上服务器自己修改,但是你又不能要求你的用户如何如何(比如给自己电脑装防火墙、杀毒软件etc),因为那是人家自己的事情。那么我就想,有没有一个方法可以限制某个用户只能从某个ip(或者ip列表)登陆呢?下面是一些解决方法。