介绍
ssh分为客户端(client)和服务端(server),在客户端会生成 id_rsa(私钥)和公钥(id_rsa.pub)
- 客户端将私钥发给服务端
- 客户端使用私钥将密码加密,并发送给服务端
- 服务端用公钥解密登录密码
ssh免密登录原理:
1, node1 使用 ssh-keygen –t rsa 生成公钥和私钥
2,ssh-copy-id root@node2 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。
请求时:
1,node1向node2发送连接请求时,附带主机,ip地址等信息
3, node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并用公钥加密,并发送给node1
4, node1接收到密文之后,用私钥解密,并把解密结果返回给node2
5, node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。
安装与配置
- 安装客户端(ubuntu已经默认安装)
sudo apt-get install openssh-client - 安装服务端
apt-get install openssh-server - 配置文件
sudo gedit /etc/ssh/sshd_config
openssh
在主机中开启了openssh服务,那么就对外开放了远程连接的接口
openssh的服务端:sshd
openssh的客户端:ssh
ssh————————————>sshd
client server
ssh
ssh= secure shell
可以让远程主机通过网络访问sshd服务,开始一个安全shell,并对其进行操控
sshd
可以通过网络在主机中开启shell的服务
启动和关闭ssh
- sudo service ssh start
- sudo /etc/init.d/ssh restart
- sudo service ssh stop
连接和断开服务端
- ssh usr@hostname
usr 是服务端的用户名,如果客户端和服务端客户名称相同,则不需要指定
ssh -p 2222 user@host 可以指定端口
hostname 可以是客户端ip地址,也可以是客户端主机名 - exit
设置公钥和私钥(生成免密的登录)
免密登录是单向的.
- ssh-keygen -t rsa
在客户端生成公钥和私钥 - ssh-copy-id user@host
将公钥上传到服务端
本质上是将客户端的~/.ssh/id_rsa.pub
公钥的内容添加到服务器的~/.ssh/authorized_keys
中
ssh-keygen -f id_dsa -p
改变私钥的密码
ssh-keygen -f "~/.ssh/known_hosts" -R 192.168.1.254
scp
secure cp(安全的copy)
注意是在客户端输入命令,而不是登录服务端输入命令
远程主机要带ip地址
scp /dir/file user@ip:/dir/file
复制本地文件到服务器
scp user@ip:/dir/file /dir/file
复制服务器文件到本地
如果是客服端有的文件夹(路径相同),则无需再服务端创建文件夹,如果没有则会报错
-r 递归复制
-f 强制复制
-v 显示进度
配置远程 root登录
PermitRootLogin without-password
-> PermitRootLogin yes
sudo service ssh restart
参考:
https://www.cnblogs.com/xishuai/p/7458191.html
permission denied for root@localhost for ssh connection
参考文献:
http://www.jb51.net/os/Ubuntu/161353.html
http://blog.csdn.net/zht666/article/details/9340633
http://www.jb51.net/os/Ubuntu/161384.html 配置详解
http://blog.csdn.net/pipisorry/article/details/52269785 公钥和私钥配置
http://os.51cto.com/art/201304/390042.htm ssh常用命令
https://www.cyberciti.biz/faq/howto-ssh-changing-passphrase/
http://www.cnblogs.com/longjshz/p/5773679.html
https://blog.csdn.net/qq_42036824/article/details/82943088