SSH Notes
SSH服务,全称为Secure Shell,是一种网络协议,为用户提供安全的远程访问和文件传输服务。
ssh命令
|
|
ssh-keygen命令
ssh-keygen
命令允许用户创建用于SSH公钥身份验证的密钥对,包括私钥和公钥。私钥应该被安全地保存在本地机器上,而公钥则可以复制到远程服务器上,以便进行无密码的SSH登录。
|
|
-t
:指定生成密钥所用的算法(如rsa、ed25519等),不指定则使用默认算法ed25519
-C
:为密钥对添加注释-b
:指定密钥的位数(长度)-f
:指定私钥文件的路径,不指定路径默认在~/.ssh
文件夹下,公钥文件名比私钥文件名多了.pub
|
|
passphrase
生成公私钥对可选择是否生成passphrase。如果生成SSH公私钥对时,设置了passphrase,那么使用SSH连接服务器时需要输入passphrase。
ssh-copy-id命令
ssh-copy-id
是一个用于将本地机器的 SSH 公钥复制到远程服务器的 ~/.ssh/authorized_keys
文件的实用工具。这样做之后,你就可以通过SSH免密码登录到远程服务器了,前提是远程服务器的SSH配置允许使用公钥进行身份验证。
|
|
-i [identity_file]
:指定公钥文件的路径。当只有一对公私钥可以不指定,当有多对公私钥时需要手动指定想要上传的公钥文件路径。[user@]hostname
:指定远程服务器的用户名和主机名或IP地址。如果不指定用户名,将使用当前用户的用户名。
scp命令
|
|
-r
:递归复制整个目录-v
:详细方式显示输出
SSH相关文件
~/.ssh/id_ed25519
当生成一对SSH公私钥时,如果不指定文件路径,则公私钥文件会放在~/.ssh
文件夹下,比如使用ed25519
算法生成一对公私钥,那么默认的私钥文件名和公钥文件名分别是id_ed25519
和id_ed25519.pub
公钥文件的内容示例
|
|
公钥文件内容分为三部分,以空格为分隔符。如上,第一部分ssh-ed25519
表示该公钥是通过ed25519
算法生成的,第二部分是公钥的主体部分,用于在 SSH 连接时验证用户的身份,第三部分是注释。
~/.ssh/config
~/.ssh/config
是SSH配置文件的路径
格式
|
|
示例
|
|
配置完成后,后续可以使用ssh ubuntu
代替ssh star@123.45.67.89
~/.ssh/known_hosts
~/.ssh/known_hosts
是一个SSH客户端用来存储已知的远程主机公钥的文件。当首次通过SSH连接到一个新的远程主机时,SSH客户端会提示你接受该主机的公钥并将其添加到 ~/.ssh/known_hosts
文件中。
可使用ssh-keygen -R server.example.com
删除~/.ssh/known_hosts
文件中远程主机。
~/.ssh/authorized_keys
~/.ssh/authorized_keys
文件是一个用于存储公钥的文件,允许SSH用户通过公钥认证方式登录到服务器,每一行代表一个公钥。比如使用ssh-copy-id
将本机上的公钥拷贝到了远程主机,远程主机的该文件就会储存该公钥。
Github配置SSH
详见:Github上配置SSH
Ubuntu上使用SSH服务
|
|