❶ 如何使用SSH登录linux服务器
首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/sshd_config文件里的配置信息,使用vim编辑,在命令行模式下输入vim/etc/ssh/sshd_config,进入之后,按“i”进入编辑状态,在其文件里找到并修改为:PasswordAuthentication yes,PermitRootLogin yes两行即可,
此时可以查看ssh状态是否为运行状态,运行状态即可使用ssh远程登陆。
使用“ifconfig”命令查询ip地址
使用ssh登陆时,输入主机(linux的ip地址),账号,密码登陆!
如果需要远程连接SSH,需要把22端口在防火墙上开放,关闭防火墙,或者设置22端口例外/etc/init.d/iptables stop
怎么通过ssh登陆可参看下一篇“通过ssh实现远程登陆服务器!”
大致步骤为:
SSH 服务配置文件位置
/etc/ssh/sshd_config
# 修改配置
PasswordAuthentication yes
PermitRootLogin yes
# 启动SSH 服务
sevice ssh start/stop/status
安装SSH:yum install ssh
启动SSH:service sshd start
设置开机运行:chkconfig sshd on
❷ 中兴路由器ssh登录命令
1、友敏槐拿氏首先好友Windows中打开CMD命令行窗口。
2、然后执行SSH连接。
3、完成到路由的SSH连接。
❸ SSH 实现免密登录
本文介绍如何通过 SSH 实现免密登录。
工作环境:
SSH 是一种网络协议,用于计算机之间的加密登录。SSH是英文Secure Shell的简写形式。
通过使用SSH,你可以把所有传输的数据进行加密更加安全可靠。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH 有很多功能,它既可以代替 Telnet,又可以为FTP、Pop、甚至为 PPP 提供一个安全的"通道"。
SSH 协议更多内容看最后附的链接,有兴趣的朋友可以了解一下。
什么是免密登录呢?
通常我们登录 SSH 是通过账号和免密来登录的,输入 ssh username@ip-server 然后输入密码。
如果每次都输入密码会很麻烦,而且要对多台游弊芦主机进行自动化管理,每次都要输入密码不现实。我们可以配置公钥和密钥进行免密登录。 免密登录做的事情其实就是通过 SSH 的公钥和密钥来校验身份信息。
首先你要知道每台主机有一份公钥和一份私钥。我们要做的事情可以用一张图来表示:
图片的操作依次为
1.生成密匙对
之后可以在 /root/.ssh 中看到生成的密匙对
2.拷贝一份 A 的公钥给 B
此时在 B 的 authorized_keys 中就会有一份 A 的 id_rsa.pub 公钥信息。
注:第二步操作的做的事情其实就是一个拷贝密钥的工作,也可以手动拷贝,但是用上面的命令更方便。
3.最后我们就可以免密登录,也就是不输入密码 A 就可以登录 B
192.168.0.10 为 B 的 ip 地址
如果要退出登录,输入 exit 即可。
192.168.0.10 是 ip 地址,也就是说卜蔽登录的时候我们还要输入一次 ip。我们可以给每个主机配置一个别名,用 ssh ip-server 的方式登录。
就像人有身份证也有名字一样,我们可以通过 ip 来辨识主机。给他一个别名就是给一个 hostname 。
可以用 hostname 来查看你的主机名,要改主机名改他的配置文件
重启生效
这样主机名已经改神带掉了,还差一步。我们要让主机名和我们的 ip 关联在一起,修改 /etc/hosts 文件
例如:
两边都配置完成可以用 ssh slave 直接连接 slave 。如果你想自己免密连接自己那就按照上面的步骤给自己配置一份密匙就行了,动手试试吧。
SSH 协议介绍
数字签名是什么
SSH原理与运用(一):远程登录
SSH原理与运用(二):远程操作与端口转发
如何在CentOS 7上修改主机名
❹ linux下ssh怎么登录
您好,1.使用用户名密码登录
在命令行中输入命令:
ssh username@ip_address -p port
之后系统会提示输入密码,输入后即可登录。
如果不添加-p选项,则默认是22端口
还可以使用-l选项输入用户名:
ssh -l username ip_address -p port
2.使用密钥登录(不使用密码)
首先生成密钥,在任意目录下输入命令:
ssh-keygen -t rsa -P ''
-P表示密码,-P ''表示空密码
之后系统会提示输入生成的密钥文件的文件名,可以输入任意名称,比如id_rsa,回车
系统会在当前目录下生成id_rsa与id_rsa.pub两个文件
在根目录下新建.ssh文件夹,将生成的密钥文件拷贝过去
mkdir -p ~/.ssh
-p选项表示如果文件夹已经存在则不再新建。
然后将之前生成的两个文件都拷贝到.ssh文件夹中
cp id_rsa* ~/.ssh/
把公钥文件id_rsa.pub拷贝到需要登录的服务器上
用scp命令
scp -P port ~/.ssh/id_rsa.pub username@ip_address:~
-P表示要登录服务器的端口好,不加默认为22。
之后系统会提示输入密码,输入即可完成拷贝
登录远程服务器,在用户根目录下新建.ssh文件夹(如果不存在),在其中新建authorized_keys文件(如果不存在),把id_rsa.pub添加到authorized_keys文件中
mkdir -p ~/.ssh
这是在远程服务器上新建ssh文件夹
cat id_rsa.pub >> .ssh/authorized_keys
将id_rsa.pub文件添加到authorized_keys文件中(如文件不存在则新建)
注意:要保证.ssh与authorized_keys用户自己都有写权限
退出当前远程登录,之后就可以不使用密码远程登录了
❺ SSH是交换机的什么登录方式
SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制扒禅定;SSH为创建在应用层和传输层基础上的安全协议。传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器春缺尘接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。而SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。SSH之另一项优点为其传输的数据是经扮岩过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。
❻ shell实现SSH自动登陆
[TOC]
注:需要执行权限,可通过 sudo chmod +x ./file_name.sh 添加
sh file_name.sh 就是指定了脚本解释器 /bin/sh 来解释执行脚本;常见的脚本解释器还有: /bin/bash 等,我们可以使用 ls -l /bin/*sh 命令来查看当前可用的脚本解释器;
这种方式不会像前两种方式一样fork一个子进程去执行脚本,而是使用当前shell环境执行。我们不必重启shell或者重新登录系统,就能使当前的更改生效。一般用于 .bashrc或者.bash_profile被修改的时候,
定义:我们写一个shell脚本时,总是习惯在最前面加上一行 #!/binbash ,它就是脚本的 shebang 。
作用:它指示了此脚本运行时的解释器,使用文件名直接执行shell脚本时,必须带上shebang。
使用:可以在shebang后面直接附加选项,执行时我们默认使用选项执行;
如 test.sh 的 shebang 为 #!/bin/sh -x ,那我们执行脚本时:
./test.sh hello 相当于: bin/sh -x ./test.sh hello ;
注意:在指定脚本解释器来执行脚本时,shebang会被指定的脚本解释器覆盖。
expect是一个能实现自动和交互式任务的解释器,它也能解释常见的shell语法命令,其特色在以下几个命令:
spawn command 命令会fork一个子进程去执行command命令,然后在此子进程中执行后面的命令;
它的一般用法为 expect "string" ,即期望获取到string字符串,可在在string字符串里使用 * 等通配符; string 与命令行返回的信息匹配后,expect会立刻向下执行脚本;
set timeout n 命令将expect命令的等待超时时间设置为n秒,在n秒内还没有获取到其期待的命令,expect 为false,脚本会继续向下执行;
一般用法为 send "string\r" , 向命令行输入一条信息, \r 表示输入回车;
创建脚本 touch aliyun_login_shell.sh ,内容如下:
执行 sudo chmod +x ./aliyun_login_shell.sh 命令给shell脚本添加执行权限;
运行 ./aliyun_login_shell.sh 命令,一键登陆成功!
优化一下:
脚本完成了,可是还是有些小瑕疵:
这里我们想到了linux的alias命令:
执行命令 vim ~./bash_profile ,在文件内部添加:
再使用 . ~./bash_profile 或 source ~./bash_profile
从此,我们无论在哪个目录,只要输入 alias_name 命令,回车,真正的一键登陆!
参考:
https://www.cnblogs.com/qiumingcheng/p/11544569.html
❼ SSH 登录流程分析
登录流程
密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到 密钥对 。整个登录流程如下:
远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户。
用户收到远程服务器发来的字符串,使用与 远程服务器公钥配对的私钥 对字符串进行加密,再发送给远程服务器。
服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登录成功。
整个登录的流程就是这么简单,但是在实际使用 ssh 登录中还会碰到一些小细节历亮,这里演示一遍 ssh 远程登录来展示下这些细节问题。
生成密钥对
使用ssh-keygen就可以直接生成登录需要的密钥对。ssh-keygen是 Linux 下的命令,不添加任何参数就可以生成密钥对。
➜ ~ ssh-keygenGenerating public/private rsa key pair.Enter fileinwhichto save the key (/home/jaychen/.ssh/id_rsa):#1Enter passphrase (emptyforno passphrase):#2Enter same passphrase again:#3
执行ssh-keygen会出现如上的提示,在#1处这里链睁提示用户输入生成的私钥的名称,如果不填,默认私钥保存在/home/jaychen/.ssh/id_rsa文件中。这里要注意两点:
生成的密钥,会放在 执行ssh-keygen命令的用户的家目录 下的.ssh文件夹中。即$HOME/.ssh/目录下。
生成的公钥的文件名,通常是私钥的文件名后面加.pub的后缀。
#2处,提示输入密码,注意这里的密码是用来保证私钥的安全的。如果填写了密码,那么在使用密钥进行登录的时候,会让你输入密码,这样子保证了如果私钥丢失了不至于被恶意使用。 话是这么说,但是平时使用这里我都是直接略过。
#3是重复#2输入的密码,这里就不废话了。
生成密钥之后,就可以在/home/jaychen/.ssh/下看到两个文件了(我这里会放在/home/jaychen下是因为我使用 jaychen 用户来执行ssh-keygen命令)
➜ .ssh ls
total 16K
drwx------ 2 jaychen jaychen 4.0K 12月 7 17:57 .
drwx------ 9 jaychen jaychen 4.0K 12月 7 18:14 ..
-rw------- 1 jaychen jaychen 1.7K 12月 7 17:57 id_rsa.github
-rw-r--r-- 1 jaychen jaychen 390 12月 7 17:57 id_rsa.github.pub
生成的私钥还要注意一点: 私钥的权限应该为rw-------,如果私钥的权限过大,那么私钥任何人都可以读写就会变得不安全。ssh 登录就会失败。
首次 ssh 登录
登录远程服务器的命令是
ssh 登录用户@服务器ip
这里开始要注意两个用户的概念:
本地执行这条命令的用户,即当前登录用户,我这里演示的用户名称是 jaychen。
要登录到远程服务器的用户。
在开始登录之前,我们棚烂岁要首先要把生成 公钥 上传到服务器。
公钥的内容要保存到 要登录的用户的家目录下的.ssh/authorized_keys 文件中。假设你之后要使用 root 用户登录远程服务器,那么公钥的内容应该是保存在/root/.ssh/authorized_keys中。注意authorized_keys文件是可以保存多个公钥信息的,每个公钥以换行分开。
上传完毕之后,执行
ssh root@远程服务器ip
这个时候,如上面说的,远程服务器会发送一段随机字符串回来,这个时候需要使用私钥对字符串进行加密。而这个私钥会去 执行该命令的用户的家目录下的.ssh目录 读取私钥文件,默认私钥文件为id_rsa文件。即$HOME/.ssh/id_rsa文件。假设在生成密钥的时候对私钥进行了加密,那么这个时候就需要输入密码。
上面的流程用户登录的时候是不会感知的,ssh 在背后完成了所有的校验操作,如果密钥匹配的话,那么用户就可以直接登录到远程服务器,但是如果是 首次登录 的话,会出现类似下面的提示:
➜ .ssh ssh [email protected] authenticityofhost'192.168.1.1 (192.168.1.1)' can't be established.ECDSAkeyfingerprintisSHA256:61U/SJ4n/.Are you sure you wanttocontinueconnecting (yes/no)?
这句话的意思是,远程服务器的真实身份无法校验,只知道公钥指纹(公钥的 MD5 值)为61U/SJ4n/,是否真的要建立连接。出现上面的提示是因为避免存在 中间人攻击 。
中间人攻击
中间人攻击的前提是,你第一次登录一台远程服务器,你除了用户名、用户名对应的公钥私钥以及服务器 ip 之外,对远程服务器丝毫不了解的情况下。假设你 ssh 远程登录 192.168.1.1 的远程主机,在连接过程中被第三者拦截,第三者假冒自己为 192.168.1.1 的主机,那么你就会直接连接到其他人的服务器上。这就是中间人攻击。
为了避免中间人攻击,ssh 在首次登录的时候会返回公钥指纹,用户需要自己手动去 比对你要登录的远程服务器的公钥的公钥指纹和 ssh 返回的公钥指纹是否一样 。
经过比较公钥指纹,确认该服务器就是你要登录的服务器,输入yes之后就可以成功登录。整个登录流程结束。
known_hosts 文件
第一次登录之后,在本机的$HOME/.ssh/目录下就会生成一个known_hosts的文件,内容类似下面
➜ .ssh cat known_hosts192.168.1.1ecdsa-sha2-nistp256 GV0rFcI0z/DHZizN5l/ajApsgx+UcOOh51liuyBRRCIyF+BR56Le0lP0Pn6nzvLjbqMqg=
这个文件记录了远程主机 ip 和远程主机对应的公钥指纹,那么在下次登录的时候,远程主机发送过来的公钥指纹,直接和known_hosts文件中对应 ip 的公钥指纹比较即可。
config 配置
很多时候,我们开发可能需要连接多台远程服务器,并且需要配置 git 服务器的私钥。那么这么多的服务器不能共用一套私钥,不同的服务器应该使用不同的私钥。但是我们从上面的连接流程可以看到,ssh 默认是去读取$HOME/.ssh/id_rsa文件作为私钥登录的。如果想要不同的服务器使用不同的私钥进行登录,那么需要在.ssh目录下编写config文件来进行配置。
config的配置很简单,只要指明哪个用户登录哪台远程服务器需要使用哪个私钥即可。下面给出一个配置示例。
Host github.com
User jaychen
IdentityFile ~/.ssh/id_rsa.github
Host 192.168.1.1
User ubuntu
IdentityFile ~/.ssh/id_rsa.xxx
上面config文件字段含义如下:
Host 指明了远程主机的 ip,除了使用 ip 地址,也可以直接使用网址。
User 指的是登录远程主机的用户。
IdentityFile 指明使用哪个私钥文件。
❽ 配置ssh登陆
配置ssh登陆很简单
1.在客户端生成掘衫弯ssh秘钥对
ssh-keygen命令,多次Enter即可在当前用户目录下.ssh文件夹判闷中生成id_rsa, id_rsa.pub
2.在服务器上安装公钥
cd /root/.ssh
cat id_rsa.pub >>塌链 authorized_keys
3.确认ssh打开秘钥登陆
编辑/etc/ssh/sshd_config
AuthorizedKeysFile .ssh/authorized_keys
如有改动配置文件,需要service sshd restart重启服务
4.通过私钥ssh登陆到服务器。
❾ 如何使用SSH登录远程服务器
默认配置
Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:
ssh IP地址1
一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:
ssh 用户名@IP地址 -p 端口号1
如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。
密钥登录
每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。
首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的.ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。
ssh-keygen1
然后将本地公钥添加到服务器中,需要使用另一个命令:
scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径1
然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的.ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。
❿ 如何使用ssh登陆windows服务器
1. ssh简介以及本例的应用场景
① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\test.bat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2. ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装(http://www.freesshd.com/)
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3. ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/.ssh/id_rsa为私有密钥,/root/.ssh/id_rsa.pub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/.ssh/id_rsa.pub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh [email protected] "c:\test.bat"
这条命令将执行服务器端的C盘下的test.bat文件,并把结果返回,整个操作不需输入密码。
4. ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:http://www.chiark.greenend.org.uk/~sgtatham/putty/
各种客户端的比较:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients
在Putty主页,我们下载putty.zip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plink.exe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用putty.zip中附带的PUTTYGEN.exe生成。
启动PUTTYGEN.exe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_key.ppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见【ssh客户端的设置(Linux)】。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_key.ppk [email protected] c:\test.bat
(此时将执行服务器端的c:\test.bat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry…