ssh安装,配置以及免密连接

ssh安装,配置以及免密连接

目录:
一、ssh检查与安装
二、ssh基本用法
三、配置文件 (~/.ssh/config)
四、ssh免密连接
五、通过ssh在服务器执行命令

一、ssh检查与安装

sudo systemctl status ssh	# 检查SSH服务器状态

一般linux系统都自带ssh,如果没有可以根据如下命令安装

sudo apt update        	# 更新数据
sudo apt upgrade        # 更新软件
sudo apt install openssh-server  #下载安装ssh服务的服务器
sudo apt install openssh-client  #下载安装ssh服务的客户端
sudo systemctl start ssh	 # 启动
sudo systemctl stop ssh		 # 停止
sudo systemctl enable ssh 	 # 设置随系统启动时启动

以ubuntu为例,其它系统请参考具体的安装命令

二、ssh基本用法

1、远程连接服务器
ssh user@hostname	# user:用户名,hostname:IP地址或域名

第一次登录时会安全提示:
ssh安装,配置以及免密连接_第1张图片

  • 输入yes,然后回车即可。
  • 这样会将该服务器的信息记录在~/.ssh/known_hosts文件中,第二次登录就不会有以上提醒
  • 然后输入密码即可登录到远程服务器中。
2、登录某一特定端口
ssh user@hostname -p 22		# -p 指定登录的端口

默认登录端口号就为22

三、配置文件 (~/.ssh/config)

1、写配置文件的目的

每次连接服务器都要输入用户名和ip地址太麻烦,可以通过配置文件为此起个别名

2、配置文件书写格式
  1. ~/.ssh/config文件中写入如下格式的内容

    Host myserver1
    	HostName IP地址或域名
    	User 用户名
    	Post 端口号
    Host myserver2
    	HostName IP地址或域名
    	User 用户名
    	...
    
  2. 之后再使用服务器时,可以直接使用别名myserver1、myserver2。

    ssh myserver1
    
3、示例

~/.ssh/config文件中写入

Host myserver
	HostName 192.168.146.130
	User root
ssh myserver	# 等价与:ssh [email protected]
ssh安装,配置以及免密连接_第2张图片
4、补充windows配置

以上为linux的配置,windows配置目录在C:\Windows\System32\drivers\etc\hosts
直接在配置文件中写入,管理员模式的记事本才可以保存更改

格式:ip地址 别名
例如:192.168.146.130 server1

windows无法省略用户名,只能给ip地址做一个映射

四、ssh免密连接

免密连接主要分为两步

  1. 产生公钥与密钥对
  2. 将公钥发送到服务器
1、创建密钥对

在主机输入

ssh-keygen -t rsa 		# -t 指定密钥加密方式为rsa (也就是默认的)

然后一直回车即可。

执行结束后,~/.ssh/目录下会多两个文件:

id_rsa:私钥
id_rsa.pub:公钥

2、将公钥发送到服务器

1、想免密码登录哪个服务器,就将公钥传给哪个服务器即可。

例如:想免密登录myserver服务器。则将主机公钥中的内容,复制到myserver服务器中的~/.ssh/authorized_keys文件里即可。
linux上可以使用如下命令一键添加公钥到服务器

ssh-copy-id myserver	# myserver:用户名:ip地址,也可以就是myserver见如上配置文件部分

2、主机上传文件到虚拟机可以使用scp命令

scp id_rsa.pub myserver:~/.ssh/

参考:主机虚拟机互传文件:SCP命令和MobaXterm工具

3、linux下执行重命名公钥文件

mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

注意事项:

  1. 是将主机的公钥的内容复制到服务器~/.ssh/authorized_keys文件中
  2. 如果服务器~/.ssh下没有authorized_keys文件手动创建即可,如果~/.ssh目录都没有也可自行创建
  3. 名称一定要为authorized_keys并且在~/.ssh目录下
  4. 主机为Linux系统时可以使用ssh-copy-id myserver命令一键完成上述内容,两者等价

五、通过ssh在服务器执行命令

SSH是Linux下进行远程连接的基本工具,不光可以登录,也可以远程操作
1、执行命令格式:

ssh user@hostname command		# command:要执行的命令

2、示例:

ssh user@hostname ls -a			# 查看服务器目录下的文件
ssh user@hostname shutdown now	# 关闭服务器
ssh user@hostname "sudo ls /root"
ssh user@hostname "top"

更多请参考: ssh 远程执行命令-CSDN博客

你可能感兴趣的:(环境配置与项目部署,ssh,linux)