小编Ano*_*non的帖子

为什么我只能使用私钥使用 ssh 登录服务器?

我在计算机 1 中生成了密钥对。

并将公钥移动到Computer2(服务器)并使其在authorized_keys中。

并将私钥移动到 Computer3(client) 并用于ssh-add添加它。

为什么我可以直接登录服务器而不提供公钥?ssh 密钥授权的真正工作流程是什么?

ssh openssh

6
推荐指数
2
解决办法
2918
查看次数

为什么'sudo -E'不保留export -f导出的函数环境变量?

在脚本.sh中:

#!/bin/bash

func(){
  echo "I am here a func."
}

export -f func
export variable="I am here a variable"

sudo -E bash -c "func ; echo $variable"

Run Code Online (Sandbox Code Playgroud)

输出如下:

bash: func: command not found
I am here a variable
Run Code Online (Sandbox Code Playgroud)
  1. 为什么?
  2. 有什么解决方案可以让我通过 sudo 在新生 shell 中调用函数 [在 script.sh 中声明]?

其实我知道一个方法,比如:

#!/bin/bash

func(){
  echo "I am here a func."
}

FUNC=$(declare -f func)
export variable="I am here a variable"

sudo -E bash -c "$FUNC; func ; echo $variable"

Run Code Online (Sandbox Code Playgroud)

但我觉得它太重了,因为我必须用这种方式注册每个函数。

bash sudo environment-variables function

5
推荐指数
1
解决办法
1150
查看次数

是否可以在 zsh 中为位置参数分配一个整数值?

我正在阅读 zsh 的手册,我知道我可以通过以下方式将整数值分配给参数:

(( val = 1 ))
Run Code Online (Sandbox Code Playgroud)

如果我正在调用一个脚本,而我的第一个参数是一个整数,如./scirpt.zsh $((val)),我如何在我的脚本中引用它来执行一些算术过程,如重新分配、比较等?我希望代码如下:

#!/bin/zsh

(( {1} = $1++ ))

Run Code Online (Sandbox Code Playgroud)

zsh

2
推荐指数
1
解决办法
149
查看次数

标签 统计

bash ×1

environment-variables ×1

function ×1

openssh ×1

ssh ×1

sudo ×1

zsh ×1