ssh - Secure Shell(安全外壳协议)
远程登录方式
- 密码登录
- 密钥登录
安装
服务端
sudo apt install openssh-server
客户端
sudo apt install openssh-client
win10: win+x / 应用和功能 / 管理可选功能 / 添加功能 / OpenSSH
密码登录
发起会话,ssh user@hostname 或 ssh user@ip,输入用户密码.
ssh haha@myserver
或
ssh haha@192.168.1.23
密钥登录
- 生成密钥对
haha@st ~/.ssh $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/haha/.ssh/id_rsa): //要求输入文件名,按回车默认id_rsa
Enter passphrase (empty for no passphrase): //第一次输入密码,按回车免密
Enter same passphrase again: //第二次输入密码,要和第一次一样
Your identification has been saved in /home/haha/.ssh/id_rsa. //生成的私钥文件id_rsa
Your public key has been saved in /home/haha/.ssh/id_rsa.pub. //生成的公钥文件id_rsa.pub
查看生成的密钥对
haha@st ~ $ ls .ssh/
id_rsa id_rsa.pub
ssh-keygen 有更多的参数可以用
- -f 指定密钥文件,如 ~/.ssh/my_ssh_key.
- -P 指定密码,如 “123456”,或者空 “”.
haha@st ~ $ ssh-keygen -f ~/.ssh/my_ssh_key -P ""
haha@st ~ $ ls .ssh/
id_rsa id_rsa.pub my_ssh_key my_ssh_key.pub
- 拷贝公钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.4
这相当一次密码登录
,要求输入密码.公钥会被拷贝到服务器 user 用户的/home/user/.ssh/authorized_keys (授权文件).
之后,只要有客户端发起密钥登录就会到授权文件查找公钥进行认证.
ssh-copy-id 指令格式:
ssh-copy-id -i 公钥文件 username@hostname
.
win 下如果没有 ssh-copy-id 工具,需要手动拷贝.
- 发起会话
ssh user@192.168.1.4
可以用 -i 参数指定密钥
ssh user@192.168.1.4 -i ~/.ssh/my_ssh_key
- 更加便捷的登录方式,配置 .ssh/config 文件
Host user8server
HostName 192.168.1.4
User user
IdentityFile C:\\Users\\haha\\.ssh\\my_ssh_key
Host 字段是个名字可以随意起,但最好用字母和数字,像 @ 就会出问题,和
ssh 用户@主机
冲突.
HostName 字段和 User 字段组成ssh User@HostName
.
IdentityFile 字段指定 ssh 私钥-i IdentityFile
.
- 现在可以这样登录
ssh user8server
参考
https://www.cnblogs.com/xz816111/p/9479139.html
https://baike.baidu.com/item/ssh/10407?fr=aladdin
https://www.jianshu.com/p/33461b619d53