乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Linux服务 1.01 sshd
2016-10-04 15:05:57
93
0
0
admin
> 这里介绍著名的sshd 服务以及它的agent: ssh scp sftp等 #sshd sshd 提供加密的登录系统的方式 ##sshd 服务端客户端连接步骤 1. sshd 启动时会读取/生成服务器的公钥 在/etc/ssh/ssh_host* 2. 客户端连接sshd 时候会获取服务端公钥,客户端会把服务端公钥信息记录到~/.ssh/known_hosts,把自己的公钥给服务器。(如果客户端不是第一次登录该服务器且发现服务端公钥有变化,会发出警告) 3. 服务端客户端都拥有对方公钥了,可以用非对称加密技术开始愉快的通信了。 *** ##使用sshd ###ssh 命令的用法 ssh -o 参数 -p 端口 用户@目标机器 “命令” ssh **-vv** xxx 可以显示连接的详细过程,用于排错。 以下参数用在命令行上就是临时的,写进/etc/ssh/ssh_config 就是持久化的 ConnectTimeout=xx 单位秒,连接超时设置 StrictHostKeyChecking=yes/no/ask 是自动,手动还是询问是否要把目标服务器的公钥加入~/.ssh/known_hosts ##使用scp scp -rp -l 速率 file user@hostname:path -r 拷贝整个目录 -p 保留文件权限 -l 单位是千比特, -l 8000 就是限速1000kb ##使用sftp 使用方法和ftp 基本一样,就是有了加密保护。 **在对方机器操作** 进入目录 cd path 显示当前目录 pwd 显示当前目录下文件 ls 建立目录 mkdir **在本机操作** 进入目录 lcd path 显示当前目录 lpwd 显示当前目录下文件 lls 建立目录 lmkdir **上传/下载** put 本机文件 远程目录 get 远程文件 本机目录 *** ##配置SSH 无密码登录 **原理:**生成自己的公钥,私钥;将公钥给目标服务器,私钥自己留着,就可以无密码登录目标服务器了。 具体操作: **生成公钥密钥**: ssh-keygen -t rsa -N 密码 -f 文件 #密码可以为空,不跟-N 参数的话会在交互界面询问密码,不跟-f 的话默认写进~/.ssh/id_rsa 和~/.ssh/id_rsa.pub **将公钥放到目标服务器上**: 将公钥写进目标服务器的~/.ssh/authorized_keys 注意双方的~/.ssh 权限必须是700,其下文件的权限如下 ``` [root@test ~]# ls -l ~/.ssh/ total 16 -rw-r--r-- 1 root root 394 Jul 2 20:25 authorized_keys -rw------- 1 root root 1675 Jul 2 19:55 id_rsa -rw-r--r-- 1 root root 394 Jul 2 19:55 id_rsa.pub -rw-r--r-- 1 root root 2787 Jul 17 17:08 known_hosts ``` *** ##配置sshd服务端 vim /etc/ssh/sshd_config ``` Port 22 #监听端口 Port 2222 #可以多次设置 PidFile /var/run/sshd.pid #顾名思义 #这里放主机的私钥 HostKey for protocol version 1 HostKey /etc/ssh/ssh_host_key HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key #安全方面 PermitRootLogin yes #是否允许root 登录 StrictModes yes #是否检查用户目录的权限是否正确(~/.ssh/) PubkeyAuthentication yes #是否允许通过公钥来无密码登录 AuthorizedKeysFile .ssh/authorized_keys #公钥存放位置 PasswordAuthentication yes #是否需要通过密码验证 PermitEmptyPasswords no #是否允许空密码登录 IgnoreUserKnownHosts no #是否忽略~/.ssh/known_hosts 服务端的公钥都藏在这 UsePrivilegeSeparation yes #是否将登陆用户的进程权限改为该用户的权限,sshd本身是root 进程。 #关于连接 TCPKeepAlive yes #是否不停的发tcp包来确定对方是否还活着,如果没有反应就断开连接,如果网络不稳定还是设置为no吧 MaxStartups 10:30:100 #允许10个“正在登陆连接”(尚未输密码),当超过10个的时候,有30%几率拒绝连接,当超过100个的时候,100%拒绝连接,如果嫌烦就直接配置成“MaxStartups 10” 也好。 #登录后的显示 PrintMotd yes #登录后是否显示一些信息 PrintLastLog yes #是否显示上一次登录的信息 ```
上一篇:
Linux服务 0.03 初始化服务systemd
下一篇:
Linux服务 1.011 用ssh作为代理
文档导航