首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

玩转SSH

2024-12-13 来源:要发发知识网

2016年01月09日13:42:30
今天在做SSH时发现,远程服务器的普通用户不设置密码的情况下,客户端不能登陆。
建立链接:用户名为user ,host为主机ip

ssh user@host

SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。

ssh ‐p 2222 user@host

远程传输文件:将本地文件复制到目标主机根目录下,从远程复制到本地,改变一下前后关系就行了

scp /etc/filename  root@目标主机ip:/
 ssh-keygen -t rsa

上传公钥:
默认当前是可以连接服务器端的. 客户端root权限下,将公钥上传到服务器根目录下

scp /home/xueyunlong/.ssh/id_rsa 6118@192.168.1.99

服务器将公钥添加到指定文件中:

cat  id_rsa.pub >> ~/.ssh/authorized_keys

关闭密码登陆,test一把

修改/etc/ssh/sshd.conf文件
PasswordAuthentication no

ssh -i /root/.ssh/id_rsa 6118@192.168.1.99

关闭root登陆

PermitRootLogin no

那么,现在只能通过普通用户公钥登陆喽:

ssh -i /root/.ssh/id_rsa 6118@192.168.1.99 
登陆成功
ssh -i /root/.ssh/id_rsa root@192.168.1.99
登陆失败

配置默认密钥
每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里
修改/etc/ssh/ssh_config
其实默认id_rsa就已经加入私钥的路径了,只不过被注释掉了而已

IdentityFile  /root/.ssh/id_rsa

如果有其他的私钥,还要再加入其他私钥的路径

IdentityFile /xueyunlong/.ssh/id_rsa

总结:
总结一下,ssh的公钥登陆吧,客户端先生成一个公钥和密钥,密钥由客户端保存(需要妥善保存,一般加上passphrase,一旦被窃取服务器肯定就能随便登录了),公钥服务器端保存。
登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

显示全文