답변:
AFAIK 에서 시간 제한을 지정 sshd_config
하거나 구성 할 구성이 없습니다 . 에서 소스 코드 파일 :ssh_config
ssh-agent
openssh
ssh-agent.c
/* removes expired keys and returns number of seconds until the next expiry */
static time_t
reaper(void)
{
time_t deadline = 0, now = monotime();
Identity *id, *nxt;
int version;
Idtab *tab;
for (version = 1; version < 3; version++) {
tab = idtab_lookup(version);
for (id = TAILQ_FIRST(&tab->idlist); id; id = nxt) {
nxt = TAILQ_NEXT(id, next);
if (id->death == 0)
continue;
if (now >= id->death) {
debug("expiring key '%s'", id->comment);
TAILQ_REMOVE(&tab->idlist, id, next);
free_identity(id);
tab->nentries--;
} else
deadline = (deadline == 0) ? id->death :
MIN(deadline, id->death);
}
}
if (deadline == 0 || deadline <= now)
return 0;
else
return (deadline - now);
}
그리고 process_add_identity
기능 :
process_add_identity(SocketEntry *e, int version)
{
....
if (lifetime && !death)
death = monotime() + lifetime;
....
}
lifetime
전역 변수이며 인수를 구문 분석 할 때만 값을 변경합니다.
/* Default lifetime in seconds (0 == forever) */
static long lifetime = 0;
int
main(int ac, char **av)
{
....
case 't':
if ((lifetime = convtime(optarg)) == -1) {
fprintf(stderr, "Invalid lifetime\n");
usage();
}
....
}
Ubuntu를 사용하는 경우 다음 ssh-agent
에서 기본 옵션을 설정할 수 있습니다 /etc/X11/Xsession.d/90x11-common_ssh-agent
.
STARTSSH=
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-t 1h"
if has_option use-ssh-agent; then
if [ -x "$SSHAGENT" ] && [ -z "$SSH_AUTH_SOCK" ] \
&& [ -z "$SSH2_AUTH_SOCK" ]; then
STARTSSH=yes
if [ -f /usr/bin/ssh-add1 ] && cmp -s $SSHAGENT /usr/bin/ssh-agent2; then
# use ssh-agent2's ssh-agent1 compatibility mode
SSHAGENTARGS=-1
fi
fi
fi
if [ -n "$STARTSSH" ]; then
STARTUP="$SSHAGENT $SSHAGENTARGS ${TMPDIR:+env TMPDIR=$TMPDIR} $STARTUP"
fi
ssh-add
명령 행을 호출 하는 경우 쉘 별명을 작성하십시오. 다음 줄을 ~/.bashrc
(bash를 사용하는 경우) 또는 ~/.zshrc
(zsh를 사용하는 경우) 또는 기타 해당 쉘 초기화 파일에 넣으십시오 .
alias ssh-add='ssh-add -t 1h'
만료되지 않는 키를 추가하려면 \ssh-add /path/to/key
또는을 사용하십시오 ssh-add -t 0 /path/to/key
.
경우 ssh-add
다른 프로그램에서 호출되는 그들이 인수를 구성 할 수있는 경우를 참조하십시오. 그 실패하는 것은, 초기 파일을 생성에 당신의 $PATH
( ~/bin
디렉토리의 일반적인 선택하게 확실히 그것은 당신의 시작 부분입니다입니다 PATH
라고하고 존재하지 않는 경우 작성) ssh-add
포함
#!/bin/sh
exec /usr/bin/ssh-add -t 1h "$@"
( 필요 /usr/bin/ssh-add
에 따라 ssh-add
바이너리 경로로 대체하십시오 .)
기본 시간 초과는 영구적입니다. 그러나 옵션을 통해 특정 에이전트 의 기본 시간 초과 를 설정할 수 있습니다 .-t
ssh-agent
남자에서 ssh-agent
:
-t life
Set a default value for the maximum lifetime of identities added
to the agent. The lifetime may be specified in seconds or in a
time format specified in sshd_config(5). A lifetime specified
for an identity with ssh-add(1) overrides this value. Without
this option the default maximum lifetime is forever.
ssh-add
기본값이 영원 이외의 것이되도록 구성하는 방법이 있습니까? ssh-add
매개 변수없이 실행 하면 한 시간 후에 시간 초과되고 싶습니다.
ssh-agent
?
SSHAGENTARGS="-s -t 3600"
오류없이 빈 화면이 멈 춥니 다. 그러나 귀하의 답변이 정확하고 중단되지 않기 때문에 호기심 만 있습니다.