ssh登入
基本用法
远程登录服务器:
ssh user@hostname
- user: 用户名
- hostname: IP地址或域名
第一次登录时会提示:
The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established.
ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes,然后回车即可。
这样会将该服务器的信息记录在~/.ssh/known_hosts文件中。
然后输入密码即可登录到远程服务器中。
默认登录端口号为22。
如果想登录某一特定端口:
ssh user@hostname -p 22
配置文件
创建文件 ~/.ssh/config。
然后在文件中输入:
Host myserver1
HostName IP地址或域名
User 用户名
Host myserver2
HostName IP地址或域名
User 用户名
之后再使用服务器时,可以直接使用别名myserver1、myserver2。
密钥登录
创建密钥:
ssh-keygen
然后一直回车即可。
执行结束后,~/.ssh/目录下会多两个文件:
id_rsa:私钥id_rsa.pub:公钥
之后想免密码登录哪个服务器,就将公钥传给哪个服务器即可。
例如,想免密登录myserver服务器。则将公钥中的内容,复制到myserver中的~/.ssh/authorized_keys文件里即可。
也可以使用如下命令一键添加公钥:
ssh-copy-id myserver
执行命令
命令格式:
ssh user@hostname command
例如:
ssh user@hostname ls -a
或者
# 单引号中的$i可以求值
ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done'
或者
# 双引号中的$i不可以求值
ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done"
win连阿里云 密钥对
用户目录下找到.ssh目录(everything找ssh也行)
创建文件config
为config文件提供权限
icacls C:\Users\zv041\.ssh\config /inheritance:r
icacls C:\Users\zv041\.ssh\config /grant zv041:F
icacls C:\Users\zv041\.ssh\config /remove "UNKNOWN\\UNKNOWN"
/inheritance:r是移除继承的权限。/grant zv041:F是授予你的账户zv041完全控制权限。/remove "UNKNOWN\\UNKNOWN"是移除不需要的用户。
确保公钥在服务器上存在
cat ~/.ssh/authorized_keys
将私钥文件放在.ssh目录下
设置私钥文件的权限
icacls C:\Users\zv041\.ssh\wei_01.pem /inheritance:r
icacls C:\Users\zv041\.ssh\wei_01.pem /grant zv041:F
解释:
icacls C:\Users\zv041\.ssh\wei_01.pem /inheritance:r
-
icacls是一个 Windows 命令,用于显示或修改文件和文件夹的访问控制列表 (ACL)。 -
C:\Users\zv041\.ssh\wei_01.pem是目标文件的路径,这里指定的是你的.pem文件。 -
/inheritance:r用于移除文件的权限继承规则。作用:此命令的作用是移除该文件的继承权限,即该
.pem文件将不再从其上级目录继承任何权限。它确保该文件只根据直接分配给它的权限进行访问控制,而不会从父文件夹继承其他权限规则。这是为了增强 SSH 私钥的安全性,防止其他用户意外获得访问权限。
icacls C:\Users\zv041\.ssh\wei_01.pem /grant zv041:F
-
/grant zv041:F用于授予指定用户或组的特定权限。zv041是当前登录的用户(在你的系统中)。:F表示“Full control”(完全控制)权限,意味着zv041用户对该文件有完全的访问权限,包括读取、写入、修改和删除该文件。
作用:此命令的作用是明确授予用户
zv041对该.pem文件的完全控制权限,确保只有你自己可以访问和操作这个文件,进一步增强文件的安全性。
修改配置文件(config)
Host myserver
HostName 8.130.142.189
User root
IdentityFile C:/Users/zv041/.ssh/wei_01.pem
再尝试使用 ssh myserver进行连接
连接成功
我的公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCEaMEMqfu92PqoE+vayOvGiuydq/nMWtkOU77tshzzjyoc/zVatWgwkG6xzPqVczEevj5rel+VldkCAQsawvdCDNmcmhP4qKBWBeb/8AMGjgYQBuibCVx7EDu7QpV+4tKCG6373w009eS5vmph+914uqUcBxrMEjjMgKZqP7PcIA9nYwnViWxKaGbytzLyeKPMfpkJ9XqZQ/oVrD0B6vrp/CO/twaLNbJuwoDPnkiac1Dg4pHZX+CpdfRtv4BfnrM0+nUUmVPDVN4yPVezyFK1snSWYVId7bhc4RMI3T7IhkdkTH2dw3Eq7/rN8IlTq0tvmfNY9hFeB8PoS+YAfPTr skp-0jl1aa09m86u304iqchi
之后换了服务器想用密钥对登入 只需要把该公钥传到该服务器中的~/.ssh/authorized_keys当中就行
项目分区导航:导入外部脚本 ⬅️ | 22-ssh登入 | ➡️ scp传文件基本用法
💬 评论