Вот пример, чтобы запустить ls удаленно, используя ваш «файл с открытым приватным ключом».
pemBytes, err := ioutil.ReadFile("/location/to/YOUR.pem")
if err != nil {
log.Fatal(err)
}
signer, err := ssh.ParsePrivateKey(pemBytes)
if err != nil {
log.Fatalf("parse key failed:%v", err)
}
config := &ssh.ClientConfig{
User: "ubuntu",
Auth: []ssh.AuthMethod{ssh.PublicKeys(signer)},
}
conn, err := ssh.Dial("tcp", "yourhost.com:22", config)
if err != nil {
log.Fatalf("dial failed:%v", err)
}
defer conn.Close()
session, err := conn.NewSession()
if err != nil {
log.Fatalf("session failed:%v", err)
}
defer session.Close()
var stdoutBuf bytes.Buffer
session.Stdout = &stdoutBuf
err = session.Run("ls -l")
if err != nil {
log.Fatalf("Run failed:%v", err)
}
log.Printf(">%s", stdoutBuf)
Я полагаю, что вы можете просто установить переменную окружения так, чтобы она смотрела по нужному пути. Поэтому, если у вас есть сценарий оболочки, который устанавливает некоторые переменные, скажем, setEnv.sh, который вы можете добавить:
export CORE_PEER_FILESYSTEMPATH=<Your ledger's path>
Затем вы можете запустить этот файл и создать его исходную точку, например: . ./setEnv.sh
[ 114]
Если вы не хотите использовать сценарии оболочки, вы можете просто сделать это в терминале:
source CORE_PEER_FILESYSTEMPATH=<Your ledger's path>