Khi tôi muốn bắt đầu (hoặc khởi động lại) ssh-agent
, nó sẽ cho tôi một vài lệnh mà tôi nên chạy bằng cách thực hiện eval $(ssh-agent)
. Tất nhiên điều này không thành công cho cá, vì nó đưa ra cú pháp cho bash hoặc csh.
Các lệnh trông như:
SSH_AUTH_SOCK=/var/folders/v4/c116f_790t7g58lh3jbr7_vm0000gq/T//ssh-L95xhmGl9FZo/agent.36846; export SSH_AUTH_SOCK;
SSH_AGENT_PID=36847; export SSH_AGENT_PID;
echo Agent pid 36847;
hoặc cho csh:
setenv SSH_AUTH_SOCK /var/folders/v4/c116f_790t7g58lh3jbr7_vm0000gq/T//ssh-Tf8etHZfP9k3/agent.36873;
setenv SSH_AGENT_PID 36874;
echo Agent pid 36874;
Phiên bản csh chạy mà không có khiếu nại khi tôi làm eval (ssh-agent -c)
, và sau đó echo $SSH_AGENT_PID $SSH_AUTH_SOCK
đưa ra đầu ra dự kiến. Tuy nhiên, shell mới không giữ các biến đó. Không gì setenv
làm gì? rõ ràng đó set
là biến số bằng cách nào đó, nhưng nó không có trong tài liệu. Nếu tôi bắt đầu một thiết bị đầu cuối mới, các biến bị mất, vì vậy tôi không chắc chúng được xuất?
Tôi chỉ thấy đó setenv
là một hàm cá, với định nghĩa set -gx
, vì vậy tôi cho rằng nó đặt biến là một global
biến và xuất nó. Tôi không hiểu rõ về phạm vi biến, vậy điều có thích hợp cho các ssh-agent
biến không?
Đối với ngữ cảnh, tôi đang làm điều này dựa trên các hướng dẫn tại github . Tôi đã sử dụng một chìa khóa ssh cho github trong nhiều năm và chưa bao giờ làm việc ssh-agent
hoặc ssh-add
chuyện, nhưng tôi nhận thấy nó trong khi thiết lập trên một máy tính mới. Có vẻ như os x đang tự chạy ssh-agent (hoặc một cái gì đó khác mà tôi đã thiết lập từ lâu), bởi vì $SSH_AUTH_SOCK
đã tồn tại . Vì vậy, có thể chạy này không quan trọng? ssh-add
không chạy mà không phàn nàn ngay cả khi không chạy ssh-agent
.
functions setenv
, hãy xem bản chỉnh sửa của mình. type
là tốt, mặc dù. Nó dường như là một sự kết hợp của which
và functions
.
type setenv