默认连接的用户名以后,笔者算是尝到了甜头.于是开始仔细研究/etc/ssh/ssh_config这个配置文件.笔者以前也只是知道有这么个文件,还真没仔细的看过.这一研究不要紧,许多问题都迎刃而解.最先引起笔者注意的两行是: # Port 22 # Protocol 1,2 这两行的意思就是说,默认连接的端口是22,默认连接使用的ssh协议1,2都可以.看过<<从ssh服务谈服务器安全>>的朋友还记得里面有关于这两点的描述吧.直接打开~/.ssh/config把这两行也加去:Port 1222 Protocol 2 是不是又省去了很多东西呢? 4.添加便于访问的主机名 这点严格来说算不上是ssh命令独有的.无论使用哪种客户端软件都会有保存会话的功能,但是ssh命令有没有读取默认会话配置的功能呢?笔者也想了很长时间,但是没找到解决办法.其实笔者就是觉得每次都要ssh xxx.xxx.xxx.xxx有点太累,主要是笔者对数字天生不感冒.咋办呢?老大说,你直接用域名不就得了?嗯?域名好记,但是好记是好记,也不短啊,咋办呢?直接写hosts得了!域名的出现是hosts不够用了.在hosts够用的情况下,为啥不用hosts呢?再说不但一劳永逸,还节省了解析时间,一举两得,于是乎:sudo vi /etc/hosts xxx.xxx.xxx.xxx web 以后再访问web的时候,直接ssh web.嗯,有点符合linux的简洁高效的思想了. 5.ssh 中文乱码问题 世界真美好.丰富多彩,五彩缤纷.linux下正常显示中文的问题,一直是笔者最关心的问题.当使用ssh登陆到中文环境的linux服务器上时,中文还是乱码.咋办呢?这天生一对的东西,能不能解决这个问题呢?答案是肯定的.在/etc/ssh/ssh_config有这么一句话: SendEnv LANG LC_ALL 这个选项默认是打开的,意思是发送系统语言环境.网上有说可以写成SendEnv LANG=en.US.UTF-8 LC_ALL=en.US.UTF-8.但是根据笔者的理解:当LC_ALL设置的时候,LANG就算设置了也要服从LC_ALL的,笔者直接在~/.ssh/config里加入了这句: SendEnv LANG LC_ALL=en.US.UTF-8 哈哈,中文就正确显示了.生活真美好!6.ssh客户端启用ssh key转发 看过<<linux远程管理的屠龙刀(终极篇)>>的朋友,应该记得里面有一个自动转发key的功能,在远程到一台linux再ssh其它机器的时候可以用你本机的私key自动去验证.极大的提高的工作效率和安全性.这个功能用普通的ssh命令可不可以实现呢?答案还是那么的肯定!但是要分两步走,vi ~/.ssh/config加入: ForwardAgent yes 然后再执行命令: ssh-add 它会默认把~/.ssh/id_rsa加到你的中转代理里.哇卡卡,我胡汉三又回来了~~~ 7.防止断开连接 ssh服务端,出于安全和节省资源的考虑,会把一段时间不活动的会话自动断开.虽然经过前面的改造你连接一台机器已经是很省事的事儿了.但是出去抽根儿烟回来,就要再这么登陆一次,让人感觉实在不爽.那咋办呢?俗话说:上有政策,下有对策. vi ~/.ssh/config ServerAliveInterval=60 这样服务器是不是变得很乖了呢:) 8.亢龙无悔 还记得<<linux远程管理的屠龙刀(终极篇)>>有提到,在使用字符界面的图形工具时会乱码的情况呢?笔者惊喜的发现,那个问题在使用ssh这个客户端工具的时候,根本不存在! 是什么原因呢?ubuntu对中文环境支持的好?用了GNOME Terminal 2.28.1?ssh启用了对utf8的支持?不想追究原因了,我已经喜欢上ubuntu了. 本文就要结束了,但是对于ssh和linux的学习和使用依然还要继续,小结一下吧:有心的读者可能都发现了.本篇里提到的这些功能,都是在secureCRT里有提到.没有提到的功能,会在下一节的<<linux下远程管理利器-tmux>>继续提.在这里,笔者想说:完成同样的功能,linux和window |