在linux命令中登陆ssh服务的命令是ssh ip,例如:ssh 192.186.1.2。
输入账户和密码后,您可以登录Linux服务器。
ssh登录Linux服务器的默认端口为22,即ssh 192.186.1.2 22,通常可以省略22。 如果设置了其他端口,则不能省略它们。
(1)ssh服务器命令扩展阅读:
1、SSH连接原理
ssh服务是一个守护进程(demon)。系统后台监视客户端的连接。ssh服务端的进程名为sshd,它负责实时监视客户端的请求(IP 22端口),包括交换公共密钥和其他信息。
ssh服务器由两部分组成:openssh(提供ssh服务)、openssl(提供加密的程序)。
ssh客户端可以用XSHELL,Securert,Mobaxterm和其他工具连接。
2、SSH的工作机制
服务器启动时,会生成一个密钥(768位公共密钥),本地ssh客户端向ssh服务器发送连接请求,然后服务器检查连接点客户端发送的数据和IP地址。
确认有效性后,将密钥(768位)发送给客户端。此时,客户端将本地私有密钥(256位)和服务器的公共密钥(768位)结合成密钥对key(1024位),然后将其发送回服务器以建立连接,建立连接通过key-pair数据传输。
B. linux如何开ssh服务
1、修改属性文件:
root@kali:~# leafpad /etc/ssh/sshd_config
C. ssh命令远程连接linux服务器
默认端口号为22,sshroot@ip地址。若改变了端口号,则为:ssh登录名@IP地址-p端口号。
SSH为SecureShell的缩写,由IETF的网络小组(NetworkWorkingGroup)所制定;SSH为建立在应用层基础上的安全协议。SSH是目前较可靠的安全协议,专为远程登录会话和其他网络服务提供安全服务。利用SSH协议可以有效防止远程管理瞎亮过程含凯中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他磨老宽操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他相关平台,都可运行SSH。
D. SSH连接Ubuntu Server服务器的两种方式
SSH(secure shell)用于远程和服务器交互
Ubuntu Server默认安装了OpenSSH Server,可通过端口22连接
SSH客户端可以用用户名密码的方式连接服务器,也可以用密钥对的方式连接服务器。
可以使用SSH客户端工具PuTTY,windows10自带的SSH工具,或者VMWare的SSH工具连接服务器
1.在命令行用 用户名和密码连接
ssh username@serveraddress
2.SSH客户端还可以用 密码对 (公钥和私钥)连接
这里使用Win10自带的工具
生成密钥对
运行命令:ssh-keygen
添加公钥
打开生成的公钥文件id_rsa.pub,复制全部内容
使用SSH密码登录的方式登录Ubuntu服务器,在当前用户目录创建文件夹.ssh,进入.ssh文件夹并创建文件authorized_keys,粘贴从公钥复制的内容并保存文件
修改SSH配置
修改Ubuntu Server的文件:
/etc/ssh/sshd_config
将PubkeyAuthentication yes前面的注释去掉
运行命令重启sshd服务
sudo systemctl restart sshd
退出SSH连接,重新用私钥登录登录
ssh <username>@<serveraddress> -i <私钥路径>
E. Mac下使用SSH远程登录服务器
MAC 是自带SSH的,可以使用whereis查看是否存在,在终端执行下面的命令: 执行完后会打印存在路径 之后查看现有进程,执行下列命令: 执行完后会打印现有进程,但是你会发现找不到ssh对应的进程 下列为我的终端执行命令后的结果 这时候如果直接使用SSH命令连接本地主机或者远程主机会遇到下列错误: 解决方法:打开系统偏好设置,在共享中,打开远程登录,如下图: 之后使用ssh localhost来测试一下,如果提示输入密码来认证就没问题了。 之后再grep一下进程就可以看到ssh进程在运行了: 可以通过ssh命令连接其他主机,例如: ssh [email protected] 也可以通过ssh命令连接其他服务器,例如:ssh -p 端口 用户名@服务器ip地址F. 本地shell脚本中ssh到远程服务器并执行命令
在实际运用中在当前服务器执行命令后,需要在另一台服务器继续执行某些命令,分开去到另一台服务器执行也是比较麻烦的,因此整理下集中执行的方式
1、首先配置ssh免密操作
Linux 下实现SSH互信: https://www.jianshu.com/p/2456d98aa607
2、简单命令
ssh [email protected] "cd /var/lib; ls; cd "
2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行
2.2 分号是将两条语句间隔开
2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去
3、多条命令
ssh [email protected]<< reallssh
cd /var/lib/test
tar -zxvf api.com.tar.gz
......
exit
reallssh
3.1 命令写在 << reallssh(开始) 至 reallssh(结束) 之间
3.2 reallssh可自己定义为其他形式
3.3 在结束前加上exit退出远程
4、可能遇到的问题
问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误
解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。
所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。
to force pseudo-tty allocation even if stdin isn’t a terminal.
参考样例如下:
ssh -t -t [email protected] -p 22
--------------------------------------------------------------------------------
参考:https://blog.csdn.net/jinking01/article/details/84386769
G. ssh远程连接服务器执行命令
首先说一下使用ssh远程连接服务器执行命令的方法:
为了方便描述,这里把测试服务器称之为A1,目标服务器称之为A2
如果可以直接登录到A2,则配置成功!
下面来说问题:
ssh在远程连接服务器执行命令的时候,经常会遇到环境变量的问题,如下:
如果出现上面的提示,则说明环境变量配置有问题。
先来说解决办法
问题解决!
这里就要说明bash有两种方式interactive + login shell模式和non-interactive + non-login shell模式
在服务器上执行命令,走的是interactive + login shell模式,而通过远程登录执行命令,走的是non-interactive + non-login shell模式。
这两种模式对于环境变量的读取是有区别的。
Shell首先会加载/etc/profile文件,然后再尝试依次去加载下列三个配置文件之一,一旦找到其中一个便不再接着寻找:
~/.bash_profile
~/.bash_login
~/.profile
所以当远程执行命令时,我们只需要让~/.bashrc文件中的环境变量与/etc/profile中的环境变量一致即可!
参考:
如何解决SSH远程执行命令找不到环境变量的问题
H. liunx.系统 怎么开启SSH远程服务和22号端口具体的命令和步骤是甚么。谢谢。
1. 安装ssh:yum install ssh或者sudo apt-get install ssh
2. 启动ssh:service sshd start
3. 登录远程服务器:ssh -p 50022 [email protected]
输入密码
说明:
-p 后面是端口
my 是服务器用户名
127.0.0.1 是服务器 ip
回车输入密码即可登录
ssh默认端口就是22,不需要另外修改