SSH免密登录服务

目录

IP地址查看命令

SSH密钥

密钥常见错误及解决办法

SCP服务


SSH是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。Linux下SSH服务端的进程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理。

Ubuntu安装:

sudo apt-get install openssh-server

启动和关闭ssh服务 :

sudo service ssh start/restart/stop
sudo  /etc/init.d/ssh start/restart/stop

登录及退出远程主机命令:

# ssh登录远程主机
$ ssh [用户名@]ip地址或域名

# 退出登录远程主机
$ exit 或 ctrl-D

IP地址查看命令

查看本机IP地址命令如下:

# Linux中查看本机IP地址,以下命令二选一
$ ifconfig # 需安装额外的应用
$ ip addr
 
# Windows系统中用于显示当前电脑的TCP/IP网络配置值命令
$ ipconfig
 
# 测试网络的连接状态
$ ping IP地址或域名

# 长连接测试网络的连接状态
$ ping IP地址或域名 -t
 
# 查看和设置主机名
$ hostname

SSH密钥

为避免每次连接需输入密码,则采取利用密钥对进行连接,主要思路是:生成一对公钥私钥,私钥在local主机上,公钥在远程服务器上,每次建立ssh连接自动检查密钥对是否匹配。

目的:让两台服务器之间进行相互的免密登录

# 生成密钥对
$ ssh-keygen 

# 执行以后会在主目录下生成一个.ssh文件夹,其中包含私钥文件id_rsa和公钥文件id_rsa.pub
# 拷贝公钥的内容到远程的服务器上
$ cat id_rsa.pub

# 将本地的公钥复制到远程机器的authorized_keys文件中,-i是显示错误信息
$ ssh-copy-id -i /root/.ssh/id_rsa.pub root@远程服务器ip地址
# 执行的过程中会进行提示输入远程服务器的密码,后续登录就不需要再输入密码
# 注意:密钥之前生成过,不需要再次生成,否则会覆盖之前的密钥,需要重新再执行一次命令:ssh-copy-id -i /root/.ssh/id_rsa.pub root@远程服务器ip

# 验证登录到远程服务器上,不用输入远程服务器的登录密码
root@dj:/# ssh 远程服务器ip地址
Last login: Fri Aug  6 15:03:32 2021 from xx.xx.xx.xx

# 退出登录远程主机
$ exit 或 ctrl-D

# 再次ssh登录远程主机
$ ssh [用户名@]ip地址或域名

密钥常见错误及解决办法

1.当本地端与远程任何一端的ssh信息失效时,会报错"ECDSA host key "ip地址" for has changed and you have requested strict checking"

解决办法:清除当前机器里关于远程服务器的缓存和公钥信息,及清除known_hosts里旧缓存文件

# 以下方法进行二选一
# 清除旧缓存
ssh-keygen -R '远程服务器ip地址'

# 清空known_hosts文件内容
ssh-keygen -f "/root/.ssh/known_hosts" -R 远程服务器ip地址

2.在Linux终端使用ssh root@server_ip来连接到远程服务器时,出现Permission denied (publickey)

原因:远程主机禁用ssh密码登录权限

解决办法:不是密码错误,并且服务器上的sshd服务已经开启,则需要修改目标服务器的配置文件/etc/ssh/sshd_config

# 登录目标服务器上,执行以下操作:

# 1.切换root用户
$ su root
# 注意,忘记root密码,可使用以下命令重置
# 给root用户设置密码
$ sudo passwd root

# 2.修改sshd服务配置文件,保存后退出(需root用户权限才可进行修改)
$ vim /etc/ssh/sshd_config
#### 以下为修改内容 ####
PermitRootLogin yes # 允许ssh远程登录
PasswordAuthentication yes # 允许ssh密码登录权限

# 3.重启sshd服务
$ service ssh restart

3.ubuntu下执行"sudo service ssh restart",报如下错误:“sshd: no hostkeys available -- exiting.”

解决办法:

# 执行以下错误
$ ssh-keygen -A
$ /etc/init.d/ssh start

SCP服务

scp是基于ssh的拷贝服务,拷贝有如下指令:

# 从本地服务器复制到远程服务器: 
(1) 复制文件:  
命令格式:  
$ scp local_file remote_username@remote_ip:remote_folder # 复制文件夹
或者  
$ scp local_file remote_username@remote_ip:remote_file  # 复制文件
或者  
$ scp local_file remote_ip:remote_folder  
或者  
$ scp local_file remote_ip:remote_file  

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名  
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名   

(2) 复制目录:  
命令格式:  
$ scp -r local_folder remote_username@remote_ip:remote_folder  
或者  
$ scp -r local_folder remote_ip:remote_folder  

第1个指定了用户名,命令执行后需要输入用户密码;  
第2个没有指定用户名,命令执行后需要输入用户名和密码;


# 从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可
$ scp -r remote_username@remote_ip:remote_folder local_folder
$ scp remote_ip:remote_file local_file

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值