ssh的连接

匆匆过客 提交于 2019-12-27 01:37:24

关于ssh连接的几个问题

大三期末时间空闲,一味的复习考试也太枯燥了,所以最近同时在学习linux的知识,自己先前喜欢将知识点的总结写到记事本上,但是害怕哪天电脑出问题了,自己的心血全没了,所以就把博客当成自己的一个备份好了。

问题描述

这里主要关注ssh的连接问题,因为一开始想利用openssh来进行连接,但是发现官网7M的东西硬是下不动,然后就放弃了。但是隔了几天突发奇想,git连接GitHub的时候不也是这个样子吗?然后就直接利用ssh root@192.168.88.132连接本地的虚拟机,然后输入密码非常轻松的成功了。然后再cmd当中再利用ssh的时候,也是可以连接的。但是反过来的时候就出现了一系列问题,即linux连接windows。

ssh的两种连接方式

  1. 账号密码登录
    比如说这里的上面是用户名下面是登录密码,输入正确才能进入。
    在这里插入图片描述
    2.免密登录(不需输入密码)
    在windows登录linux,已经传输了公钥的,所以输了用户即可登录。
    在这里插入图片描述

①为什么通过git或者cmd可以轻松的连接到linux,而通过linux或者git等连接本地会出现端口拒绝?

因为归根到底还是先前自己没有搞懂,刚刚开始学习使用GitHub的时候,只是学会了怎么操作,看着两个都有git以为是配套工具,其实也可以用到其他地方。
windows没有安装openssh服务的原因,首先cmd里面支持了部分服务,可以通过用户密码访问linux,反过来的时候因为没有服务,或者端口的原因失败。

密码正确仍然不能登录

在这里插入图片描述

如果安装了openssh服务的话,正确输入密码即可进入

在这里插入图片描述

②第一次连接github的时候生成了两个密钥(公钥和私钥),而再次连接linux的时候不需要密钥了?

可以理解了,ssh登录方式有两种,一个是账户密码登录,一个是免密登录(即通过密钥登录),github除了第一次其他都没有输入密码的,linux先前没有传输密钥也是对的,没有问题,只是自己先前理解不到位。

③为什么windows没装ssh服务也能在cmd进行远程连接linux?

ssh服务分为客户端和服务器端,cmd当中的应该只安装了客户端,方便用户进行远程操作。可以利用 ssh localhost进行自测,即可发现如果没有安装服务器是不能连通的,如果安装openssh后可以连接本地。但是如果是通过superroot@10.31.33.84方式是端口拒绝,应该还要在win10进行设置才行。

一般过程指令

比如想在windows免密登录linux

  1. 首先在cmd中git等也行输入: ssh-keygen -t rsa 不要参数也行,默认rsa这个类型
  2. ssp-copy-id root@192.168.88.132 利用这指令可以直接把公钥授予权限并且添加到linux里 /root/.ssh/authorized_keys这文件里面,即可免密登录。

以上三个是我先前给自己的问题,可以看出很多重复的,了解深入之后才知道,自己需要了解的地方在哪里

总结

我的理解是每台设备应该都只有一把锁和钥匙,就算生成了其他位置的锁,但是每次ssh应该都是使用默认路径下的密钥,所以其他锁就没用了,唯一办法应该是修改配置文件,更改默认的ssh锁和钥匙路径。在默认.ssh文件下一般是三个文件(可能多一个know):1.其他公钥(authorized_keys) 2.自己公钥 3.自己密钥 4.缓存(konw_hosts)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!