关于SSH

3 篇文章 0 订阅
1 篇文章 0 订阅

本文参考SSH原理与应用阮一峰) 同主目录多用户通过ssh进行密钥登陆

一、概述                                                                                                                                                                                                                                                                                                                                                               

ssh是建立在传输层和应用层上的用于计算机间的加密通信协议,主要用于远程登录及其他远程通信。ssh有多种实现形式,如openssh,putty等。本文以openssh为例。


二、ssh远程登录的两种验证方式                                                                                                                                                                       

1.密码方式

原理:依靠账号密码登录,所有传输数据均被加密。过程如是,客户端通过ssh协议申请访问远程主机,远程主机将公钥发送给客户端主机,要求其用公钥加密所输入密码,发送给远程主机用私钥解密进行验证,如果正确,则客户端主机可以登录远程主机。难以避免“中间人”攻击。

【例】  

 

[root@A ~]# ssh  198.160.0.3                          // ssh -p 2222 198.160.0.3

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

root@198.160.0.3's password:                       //输入密码

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

Warning: No xauth data; using fake authentication data for X11 forwarding.

Last login: Mon Mar 18 19:57:16 2013 from 198.160.0.5

[root@B ~]#              


2.密钥方式(无密码登录)

原理:依靠公开密钥登录。过程如是,客户端主机(A)利用ssh工具,生成一对密钥,并将公钥放至需访问的远程主机(B),A请求登录的时候,远程主机(B)会向用户发送一段随机字符串,A用自己的私钥加密后,再发回来。远程主机B用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码(或者要求生成密钥时的密码,但不是远程主机上的用户密码)。

【例】
步骤一

客户端主机A
198.160.0.5  

[root@A ~]# ssh-keygen -t rsa -P ""  // -P ""  表示无密码登录,也可以不使用这个选项,一路回车即可
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   
 //默认的文件名为id_rsa
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
b9:96:e7:fc:ee:bf:de:a4:b2:da:74:33:82:0f:71:df root@A
[root@A ~]# cd ~/.ssh  && ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts  
[root@A .ssh]# scp id_rsa.pub root@198.160.0.3 :~/.ssh
root@198.160.0.3's password: 
// 需输入密码,无密码登录尚未配置成功
id_rsa.pub                                    100%  403     0.4KB/s   00:00
[root@A .ssh]#



步骤二
远程主机B
198.160.0.3


[root@B ~]# cd .ssh

[root@B .ssh]# cat id_rsa.pub  >> authorized_keys

 

步骤三
客户端主机A
198.160.0.5        


[root@A ~]# cd .ssh

[root@A .ssh]# ssh root@198.160.0.3

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

Warning: No xauth data; using fake authentication data for X11 forwarding.

Last login: Tue Mar 19 18:50:30 2013 from 198.160.0.5

Rocks 6.0 (Mamba)

Profile built 01:10 14-Sep-2012

Kickstarted 18:31 13-Sep-2012

[root@B ~]#                                                    //成功了!


备注 :希望在客户端主机A用不同的密钥登录其他主机C(198.160.0.4)时,可在A生成新的密钥对(为了不影响与B的通信,记得改名,例如,toC,toC.pub),重复上述过程,在A处登录C时用“ssh -i toC root@198.160.0.4" 指定密钥登录即可。

若A,B,C完全互相信任,好到可以穿一条裤子,那就可以只用一对密钥搞定一切,即在某一台主机上生成一对密钥(id_rsa,id_rsa.pub),并将公钥内容添加到authorized_keys文件中,将上面提到的三个文件拷贝放到其余两台主机的~/.ssh目录下即可。如果主机还有其他关系网,还是别这么干了!

三、我遇到的问题                                                                                                                                                          

1. ssh 修改默认端口
背景:因某些原因,服务器上的SSH端口非22,在访问正常配置的机器时,总要用-p,一些间接使用SSH的服务,使用起来就更麻烦了。所以希望改回原来的默认端口22
需要修改的文件有 /etc/ssh/sshd_config (改为Port 22), /etc/sysconfig/iptables(过滤SSH 若指定了端口 改为22) ,/etc/services (改为ssh 22/tcp  ssh 22/udp)
然后重启ssh : service sshd restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值