Telnet 与 SSH

2019-09-27

随笔

ssh与telnet的相同点:

1.两种协议都可以远程登录另一台主机

2.两种协议都属于基于TCP/IP的协议

ssh与telnet的不同点:

1.telnet是明文传送;ssh是加密传送,并且支持压缩。

2.telnet的默认端口号为23;ssh的默认端口号为22

3.ssh使用公钥对访问的服务器的用户验证身份,进一步提高的安全性;telnet没有使用公钥。

SSH 生成和使用方法

  1. 生成SSH密钥

命令行执行 ssh-keygen

等同于ssh-keygen -t rsa 命令

开始生成RSA密钥

ssh-keygen 后可配置一个参数作为提交的 comment

comment 对身份验证本身没有任何影响

之后命令行会询问密钥文件的保存路径,回车使用默认保存路径

最后会询问加密用的私钥,回车使用空口令

如果配置的私钥则需要输入两次已验证私钥是否正确

通常会在默认保存路径下生成两个密钥文件

id_rsa 私钥文件和 id_rsa.pub 公钥文件

  1. 服务的配置公钥

id_rsa.pub 可用文本工具打开,将公钥明文复制到服务端即可

Github 中在 Setting –> SSH and GPG keys –> New SHH key

将公钥明文粘贴到输入面板中保存

之后Github会询问账户的登录密码,密码验证成功之后 SSH 登录就配置成功了

下一次登录即可直接使用SSH免密登录,如果配置了私钥则在首次登录时需要输入私钥

  1. 关于IDEA的密码管理

idea 默认会记录一些账户密码,如git的用户名和密码,该设置是Configure a password policy

Configure a password policy(配置密码策略)

在“Settings” 对话框(Ctrl+Alt+S)中,选择“ Appearance and Behavior –> System Settings –> Passwords”。

设置IntelliJ IDEA如何处理Git远程存储库的密码:

In native Keychain: 选择此选项以使用本机Keychain存储您的密码。此设置仅适用于MacOS和Linux。

In KeePass: 选择此选项以使用KeePass密码管理器来存储您的密码。使用KeePass密码管理器时,将使用主密码来访问存储个人密码的文件。

一旦IntelliJ IDEA记住您的密码,除非您需要访问密码数据库,否则它不会要求它们。

输入将c.kdbx在MasterPassword字段中用于访问该文件的密码。

您可以在“ 数据库”选项中更改c.kdbx文件的默认位置。

要导入c.kdbx文件,请单击“设置图标”并从下拉菜单中选择“import”,或单击“省略号图标”并指定包含密码的本地文件的路径。

如果要从数据库中删除现有密码,请选择“clear”。

Do not save, forget passwords after restart: 如果要在关闭IntelliJ IDEA后重置密码,请选择此选项。

Set passwords for Git remotes(设置Git远程仓库的密码)

每次与Git远程仓库交互时(例如,在pull, update或push操作期间),都需要授权。您可以配置IntelliJ IDEA

以记住您的密码,这样您就不必在每次需要授权时都指定凭据。身份验证的类型取决于您尝试访问的远程存储库使用的网络协议:HTTP或SSH。

如果您使用HTTP访问远程,当您需要身份验证时,会从GIt凭据助手中请求凭据。如果未找到Git凭证助手,则会向IDE返回提示。

如果已配置密码策略,IntelliJ IDEA将在密码数据库中查找凭据。如果密码数据库中没有,则会提示您输入登录名和密码。

如果您的远程使用SSH协议,则除了配置密码策略外,您还可以选择是使用native(本机)还是built-in(内置) SSH可执行文件。

在Settings –> Preferences对话框(Ctrl+Alt+S)中,选择Version Control –> Git。从SSH可执行文件下拉列表中,选择以下选项之一:

Built-in: 所有授权都在IDE端执行。

如果使用登录名和密码进行身份验证,则会根据所选密码策略执行授权。

如果使用没有密码的SSH密钥进行身份验证,IntelliJ IDEA将访问~/.ssh/config文件并从那里获取密钥。

如果身份验证需要带密码的SSH密钥,会在GIt凭据助手中查找它,如果找不到Git凭证助手,它会向IDE返回提示。

如果已配置 密码策略,IntelliJ IDEA将在密码数据库中查找凭据。如果没有密码数据库,则会显示提示,您必须输入SSH密钥和密码。

Native: 所有授权都在Git端执行。将不显示任何提示,因此如果您使用不带密码的SSH,或者密码保存在凭证帮助程序中,或者有SSH代理,请选择此授权类型。