Chinaunix首页 | 论坛 | 博客
  • 博客访问: 106942
  • 博文数量: 19
  • 博客积分: 471
  • 博客等级: 下士
  • 技术积分: 251
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 10:03
文章分类

全部博文(19)

文章存档

2013年(1)

2012年(5)

2011年(13)

分类: LINUX

2011-02-01 23:58:39

                ssh与运维

 

    整理一下工作来看过ssh相关的文章。是一篇大杂烩,把很多网上和书籍上收集到的信息汇总在一起。是一个知识整理的过程。
    积少成多,坚持下来。

 

1.     ssh常用命令与会话管理

 

1.1 常用命令

$ ssh root@192.168.1.153 -p 110  ##指定远程登录的ip用户名端口

第一次ssh远程连接机器时会提示:

The authenticity of host '192.168.1.153 (192.168.1.153)' can't be established.

RSA key fingerprint is 6a:......:54.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.1.153' (RSA) to the list of known hosts.

laowang@192.168.1.153's password:

 

并且会生成~/.ssh/known_hosts文件,每连接一台新的机器,都生成相应的RSA指纹(RSA key fingerprint),如下:

192.168.1.153 ssh-rsa ABC....==

 

有时候远程连接不上会类似提示如下:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

这时比较快的办法就是把~/.ssh/known_hosts删掉,或者把known_hosts下对应ip的那行去掉。或者,在《的第12条,有提供一条命令来删除ssh主机信息:ssh-keygen -R , 大家可以试看看。


$ ssh 192.168.1.153 -p 3389 ## 不指定用户的话,就会以当前shell环境下的变量$USER作为登录用户账号

$ ssh –v laowang@192.168.1.153 ##调试ssh会话,很多命令中,v选项对应的英文是verbose,也就是详细的意思。

 

1.2  利用SSH退出符切换SSH会话

 

(参考:《linux 101 HACKS》哈工大中译版 第3 SSH客户端命令)

a.     登入远程主机

Localhost$ ssh -l laowang 192.168.1.153

b.     已连接远程主机linux153

linux153$

c.     要临时回到本地主机,输入临时退出符号:”~” control + z

d.     这时你已经退回本地主机,ssh远程会话就会在后台运行,可以用jobs查看它。

e.     fg进行后台任务切换

linux153$ fg %1

 

1.3  端口转发 

 

命令格式参考

$ ssh -L ::

 

应用场景:你在办公室的工作机是host1,你有服务器linux153192.168.1.153)的某个账号laowang及密码,内网有关键DB服务器192.168.10.99(限定只接受来自linux153的远程数据库查询)。

linux153使用账号laowang开启端口转发:

laowang@linux153$ ssh -g -L 50001:192.168.1.153:3306 192.168.10.99

通过这条命令就可以允许内网其他机器通过192.168.1.15350001端口转发连接DB服务器的3306端口。

 

host1上就可以利用linux15350001的端口转发,来和10.99数据库testDB进行交互

user@host1$ mysql -h 192.168.1.153 -P 50001 -utest -p123456 testDB

 

很多数据库查询工具都带有SSH隧道功能,如SQLyog等。有时候为了隐藏服务器的ip和端口或者出于其他安全的考虑,做2ssh端口转发,具体可以参考备注

 

注意,-R选项就是把右边的10.993306端口带到linux15350001端口了。

$ ssh -g -R 50001:192.168.1.153:3306 192.168.10.99

-D选项建立socks代理服务,下面例子开放的是10001端口(详见备注 = 4 \* GB3

$ ssh -D 10001 192.168.1.153

w命令就可以查看到端口转发的状态

[root@linux153 ~]# w

 03:08:36 up 16 days,  7:48, 38 users,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

wangjx   pts/1    192.168.3.15    01:26   19.00s  0.36s  0.00s ssh -R 50001:192.168.10.99:3306 192.168.1.153

root     pts/2    192.168.3.91    13Jan11  3days  0.10s  0.10s -bash

 

1.4  会话管理(踢用户)

 

先用w查看登录用户信息,在用下面命令踢用户(多个用户)

pkill -kill -t pts/8,pts/10,pts/11   #备注

或者 根据登录的用户名踢用户(未测试是否会影响以用户启动的系统服务,慎用)

pkill -KILL -u user1        #备注

 

1.5 ssh别名         #备注

a. ssh别名记录

$ mkdir ~/.ssh

$ vim ~/.ssh/config

Host linux153

HostName 192.168.1.153

Port 3389

User laowang

保存编辑:wq。快捷方式名为 ltHostName为主机名或ipPort为端口号,User 为用户名

b. 现在可以连接linux153

$ ssh linux153  ##等同与命令 ssh laowang@192.168.1.153 -p 3389

 

前面提到的端口转发也可以写成ssh别名 ( <中文版>> Page227 )

$ ssh –L 9001:localhost:21 jdoe@linux2

等同于下面的配置

$ vim ~/.ssh/config

Host linux2ftp

Hostname linux2

LocalForward 9001 localhost:21

 

$ ssh linux2ftp

   LocalForward可以换成RemoteForward,类似于-R选项,大家可以自己试试。

 

2.     ssh与服务器管理

目前sshunixlinux下,远程管理服务器的主流工具,但是ssh的交互性不强,比如在初始化ssh连接的时候总是要手动输入用户名和密码。针对这个问题,很多公司和团体都有不同的解决方案。一般是利用一些自动化的交互程序,来完成ssh的初始化连接,比如著名的expectperl等等。作为运维,成百上千的服务器等待我们维护管理,而ssh提供了可靠的安全通道,如何通过ssh通道进行批量管理、自动化管理,如何高效地完成这些任务,是我们运维日常工作的重要内容。

这部分本人没有发言权。仅列一些文章给大家作参考。

 

Unix/Linux 系统自动化管理: 远程登录篇

/developerworks/cn/aix/library/0909_jinjh_unixlogin/

我写的自动ssh的程序    by 扶凯

sshpass

/anonymouslogin/blog/item/4dcf6064506453f8f7365432.html

 

备注:

1.     实战ssh端口转发

https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/

2.     Linux系统下强制踢掉登录用户 

/edeed/blog/item/f54c6e06501b2e7502088185.html

3.     Linux logout user or logoff user commands

4.     SSH 使用技巧一则: 创建快捷方式

/ssh-create-shortcut/

其他,

使用 SSH 建立安全通信信道

/developerworks/cn/aix/library/au-tunnelingssh/

Unix Toolbox - 中文版 -- ssh scp

 

25 SSH 命令和技巧

Ubuntu 下如何使用 SSH Tunneling Proxy ?

/blog/ubuntu_ssh_tunneling

 

ssh登录慢 (ssh ­-v实例)

在脚本中使用ssh时的几个注意事项



 
初次发表博文,难免有些疏漏,希望能得到大家的指正。
 
阅读(1523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~