OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id

s

系统版本: macOS 10.14.4 (18E226)

内核版本: Darwin 18.5.0

型号名称: Mac mini 2014

型号标识符: Macmini7,1

处理器名称: Intel Core i5

处理器速度: 2.8 GHz

处理器数目: 1

核总数: 2

L2 缓存(每个核): 256 KB

L3 缓存: 3 MB

内存: 8 GB

Boot ROM 版本: 238.0.0.0.0

SMC 版本(系统): 2.24f32

序列号(系统): C07WN0Z0G1J2

硬件 UUID: 53859791-F72D-5683-AE50-C9F0380BDB19

mac下启动ssh服务

https://www.cnblogs.com/liyuanhong/articles/6540106.html

mac本身安装了ssh服务,默认情况下不会开机自启

1.启动sshd服务:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 2.停止sshd服务:
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist 3查看是否启动:
sudo launchctl list | grep ssh 如果看到下面的输出表示成功启动了:
--------------
- 0 com.openssh.sshd

官方开启 ssh root 用户的说明

https://support.apple.com/zh-cn/HT204012

# 1. 先进入 root 用户模式
su
# 2. 然后编辑 sshd_config 文件内容
vi /private/etc/ssh/sshd_config # 3. 找到‘#PermitRootLogin prohibit-password’这一行,把前面的 # 号去掉,并把后面改成 yes
PermitRootLogin yes
# 4. 保存并退出
:wq!
5.重启 sshd 服务
launchctl stop com.openssh.sshd # 停止 ssh 服务
launchctl start com.openssh.sshd #启动 ssh 服务 

ssh免密码登陆及其原理

https://www.cnblogs.com/kex1n/p/6017963.html

如何生成密钥:
1、在客户端打开终端,执行ssh-keygen,该命令会默认在~/.ssh/目录下创建id_rsa、id_rsa.pub两个文件,分别为您的公钥和私钥。
2、将公钥id_rsa.pub文件拷贝到服务器端的~/.ssh/authorized_keys文件中,有三种方法:
通过scp拷贝:
 例:scp -P 22 ~/.ssh/id_rsa.pub user@host:~/authorized_keys #可选参数-P代表指定用端口号22
通过ssh-copyid程序:
 例:ssh-copy-id user@host #此种方式简单,不需追加改文件名,但不能指定端口号,默认以22端口
通过cat方法:
 例:cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’

免密码登录原理

OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
图解,server A免登录到server B: 
1.在A上生成公钥私钥。 
2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了) 
3.Server A向Server B发送一个连接请求。 
4.Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。 
5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。 
总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。

end

上一篇:2016年11月6日--form表单验证和事件、正则表达式


下一篇:[转]Java中的多线程你只要看这一篇就够了