您的位置:首页 > 运维架构 > Linux

centos的SSH用法

2015-07-09 13:47 423 查看
linux的ssh的基本使用方法。
经常登录一个服务器,不想每次都输入用户名和密码,怎么办?
1.公钥和私钥法,免密码登录。

其实秘钥公钥法,比用用户名和密码要安全的多,基本上是不能暴力破解的,当然如果私钥被盗就玩了。

先在自己一侧的Linux机器上产生一对公钥和秘钥。
ssh-keygen -t rsa
连续3次回车,就会在本用户的.ssh目录下产生一对秘钥id_rsa和id_rsa.pub,id_rsa.pub当然就是公钥。
下面就是要将,刚才产生的公钥弄到要登录的服务器上。
这个文件应该在服务器的什么位置呢,进入用户目录,用ls -al看到一个 .ssh 的目录,如果没有只要在服务器上用一次ssh就会产生,进入.ssh,做一个名为authorized_keys的文件,把公钥的文件内容拷贝到这个文件就可,当然还有一个很方便的命令可以完成。在客户端侧的机器上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器IP
这里root是要传送到服务器的用户,这个自动登录是针对用户的,一般默认是使用本用户名。
比如客户端是用root登录的,那么
ssh 服务器IP
那么就是登录服务器的root账户,如果要登录其它账户在IP地址前加上用户名@, username@IP
另外根据不同版本的机器,这种秘钥登录不一定可行。
需要编辑/etc/ssh/sshd_config文件里 PubkeyAuthentication yes
要重启服务哦。
如果只想用公钥key来登录,而不允许使用密码。
编辑/etc/ssh/sshd_config文件里 PasswordAuthentication no
注销掉这一行没用,看来默认就是yes

2.有了自动登录,那么就可以很容易的传送文件了啦。
scp 本地文件 远程服务器IP:远程目录
比如:
scp text.txt 1.1.1.1:/home/shen
这样可以做进shell文件中执行,很方便的。

只能连接一台远程的Linux机,但是想要连接和它同一个网段的其它机器的服务

3.端口转送
这个功能同样默认不开启,centos里面多个版本默认都是关闭的,毕竟还是有风险的。
还是/etc/ssh/sshd_config这个文件,这次需要两项目,完了要重启服务哦。
AllowTcpForwarding yes
GatewayPorts yes
因为比较乱,设定A机为客户端,B机为A可以连接到的服务器,C机和B在一个网段,可与B通信,但不可以和A通信,当然A也不可能与C通信。
在A机上执行
ssh -l root -L 10000:C:23 B
-l root当然是用户名了,如果用上面的秘钥登录就不需要输入密码了。
-L,这里是大写的L,10000是监听本地的10000端口
C是C机器的IP或者域名
23是要访问C机的23端口
B是B机器的IP或者域名
有些地方介绍ssh -l root -L localhost:10000:C:23 B,这里其实是省略了,一般都是开启本机的端口嘛。
这时候在A机器上在开一个窗口,执行Telnet localhost:10000就可以转发到C的23端口了。因为刚才那个ssh窗口已经登录到B机了。
那么在windows机上想要利用Linux转发端口行不行,当然是可以的。
另外不要去转发有2次连接的协议,比如ftp协议,那样很可能失败。

tera term的客户端软件
先用ssh连接到远程,然后在该窗口的【设定】的【ssh转送】
开了一个窗口,打开追加,本地端口,就是本地监听端口,远程主机就是远程不能直接访问的IP,端口就是该主机要访问的端口。

putty



然后连接远程主机,那个source port是本地的监听端口,destination是远程不能直接连接的主机

本文出自 “天才没有那1%是万万不行的” 博客,请务必保留此出处http://xushen.blog.51cto.com/1673219/1672506
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: