写点什么

Linux ssh 登录及免密登录

作者:玄兴梦影
  • 2025-01-09
    四川
  • 本文字数:694 字

    阅读完需:约 2 分钟

基本用法

远程登录服务器:


ssh user@hostname
复制代码


  • user: 用户名

  • hostname: IP 地址或域名


第一次登录时会提示:


The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established.ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.Are you sure you want to continue connecting (yes/no/[fingerprint])?
复制代码


输入yes,然后回车即可。


这样会将该服务器的信息记录在~/.ssh/known_hosts文件中。


然后输入密码即可登录到远程服务器中。


默认登录端口号为 22。如果想登录某一特定端口:


ssh user@hostname -p 22
复制代码

配置文件

创建文件 ~/.ssh/config


然后在文件中输入:


Host myserver1    HostName IP地址或域名    User 用户名
Host myserver2 HostName IP地址或域名 User 用户名
复制代码


之后再使用服务器时,可以直接使用别名myserver1myserver2


密钥登录


创建密钥:


ssh-keygen
复制代码


然后一直回车即可。


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


  • id_rsa:私钥

  • id_rsa.pub:公钥


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


例如,想免密登录myserver服务器。则将公钥中的内容,复制到myserver中的~/.ssh/authorized_keys文件里即可。


也可以使用如下命令一键添加公钥:


ssh-copy-id myserver
复制代码

执行命令

命令格式:


ssh user@hostname command
复制代码


例如:


ssh user@hostname ls -a
复制代码


或者


# 单引号中的$i可以求值ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done'
复制代码


或者


# 双引号中的$i不可以求值ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done"
复制代码


来源:https://www.acwing.com/file_system/file/content/whole/index/content/2898263/

用户头像

玄兴梦影

关注

做一个诗意的程序员。 2018-12-30 加入

一个不是诗人的诗人,不是程序员的程序员。

评论

发布
暂无评论
Linux ssh 登录及免密登录_Linux_玄兴梦影_InfoQ写作社区