ssh的用法,关于公钥和私钥

#######redhat 7.0环境#######

ssh是什么?ssh (SSH client) is a program for logging into a remote machine and for executing commands on a remote machine. (自己翻译哈)

讲ssh服务的用法之前得需要知道这个服务是否已经开启

查看ssh服务是否开启的命令:systemctl status sshd。输入这个命令之后,会得到如下的一个提示


第二行最后一个单词disabled表示sshd服务开机不自动启动

第三行inactive(dead)表示sshd服务当前是关闭的

现在我们来开启sshd服务,输入systemctl start sshd,然后再输入systemctl status sshd查看结果

现在我们可以看到第三行是active(running),这表示sshd服务当前是开启的,但仍然是开机不启动。不过,这并不影响我们使用sshd,至于如何管理这些服务,并不在我们本节讨论范围内。

ssh可以干什么,举个例子,我现在有个朋友电脑出了点问题,但是现在他在北京,我在西安 ,为给他修个电脑,我不划算去北京吧,怎么办?用ssh。

首先得知道他的ip地址,然后登录他的root用户,用命令:ssh [email protected]***.***.*.***   星号代表ip

输入完命令后,会有一个提示,问你是否确信连接?输入yes,再然后输入他root的密码,就进入他的电脑了。但这样有个不好的地方,我知道了他root的密码,那以后岂不是可以在他的电脑上为所欲为了,这样他肯定是不愿意的,我要是不小心删掉了他珍藏多年的种子,他肯定会杀了我。

######我现在是他的身份#####

   那在这种情况下,他应该怎么办?(ps:我现在以他的身份来做)可以先给自己的电脑上一把锁,然后需要进入你电脑的人一把钥匙,你不想让别人进的时候把锁删掉就行了。那具体怎么做呢?

第一步:删除/root/.ssh/下的所有东西,如果没有.shh文件夹,建立一个。

第二步:在.ssh文件夹下,建立钥匙,使用命令ssh-keygen


输入命令后,第一个提示问你存在哪里,默认就好,直接回车。第二个问题让你输入一个密码,这个密码就是以后别人在拥有私钥的情况下,进入你主机需要的密码。输入完再输入一次,就会生成一个钥匙跟一把锁。

id_rsa叫私钥,也就是钥匙,id_rsa.pub叫公钥。

第三步:用锁来锁定本机的哪个用户,以root为例,命令是ssh-copy-id [email protected]***.***.*.***   id为本机的id。回车之后会提示你是否连接?回答yes就行,然后会提示你输入要锁定用户的密码,现在要锁定root ,那就输入root密码就行。

第四步:谁想连本机,把私钥发给谁就行,比如说,我发给一个叫playsand的用户。命令是:

  scp id_rsa [email protected]***.***.*.***:/home/playsand/.ssh  这个星号代表的是playsand用户的id,后面代表的是存储路径,一定要在playsand下建立一个.ssh目录,如果有,则将里面内容清空。

#####现在我是playsand用户#####

在自己的.ssh目录下,输入ssh [email protected]***.***.*.*** id是root的id,回车之后会提示你是否连接?回答yes,然后会提示输入密码,这个密码就是上面第二步设定的密码,输入之后,就进入了。如果输入错了,系统会提示你输入root的密码,同样,输入root密码也可以进入,这就跟刚开始一样。




#####现在我是root用户####

在这里有几个小小的设置:

1.让别人登录自己的root用户是件很危险的事,怎么能让别人怎么都登录不了自己的root用户呢;

编辑ssh_config文件(vim /etc/ssh/ssh_config),将#PermitRootLogin yes改成PermitRootLogin no(大约在48行),推出保存之后,重启以下ssh服务(systemctl reload sshd)

2.要是不认识的人或者有恶意的人不小心得到了私钥和密码,对于本机来说很危险,可以设置白名单,让指定的人可以登录;

同样vim /etc/ssh/ssh_config,找一个空行写下:allowusers 指定用户名,这样只有指定的用户可以登录本机。e.g:allowusers playsand   就是允许playsand用户登录,其他用户都登录不了,同理,重启下ssh服务。

3.让别人知道登录自己的root密码或者用户密码总是不安全的,怎样让别人只能通过私钥密码登录?

同样vim /etc/ssh/ssh_config,将passwordAuthentication yes 改成passwordAuthentication no ,这样,别人只能通过私钥密码登录本机。修改完重启ssh服务。