2017-12-11 25 views
0

서버로 ssh 할 때 필요한 추가 된 일부 사용자 정의 폴더에서 PATH 변수가 필요한대로 설정되어 있는지 확인할 수 있습니다.

Java에서 com.jcraft.jsch.JSch 라이브러리를 사용하여 동일한 서버에 연결하려고하면 PATH가 다른 것으로 설정됩니다. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

이 값은 기본 값처럼 보이며 필요에 따라 사용자 지정 폴더를 포함하지 않습니다. 실행 파일의 전체 경로를 지정하지 않으면 Java를 통해 연결할 때 작동해야하는 명령이 없습니다. 다른 서버에 연결해야하며 다른 위치에있는 실행 파일로 설정할 수 있으므로 옵션이 아닙니다.

Java를 사용하여 연결할 때 누군가가 ./bashrc 파일이 실행되지 않는 이유를 알아 내면 도움이되기를 바랍니다. 수동으로 실행해야합니까?

미리 감사드립니다. 당신이 (당신이 chsh으로 변경할 수 있습니다 아마 bash) 원격 시스템에서 사용자 이름에 설정 한 어떤 쉘

+0

스택 오버플로는 프로그래밍 및 개발 관련 질문에 대한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. – jww

+1

자바로 프로그래밍하기 때문에 게시했습니다. Java API를 사용하여 ssh에 연결하려고 시도하고 있으며 ssh를 사용하여 연결하는 것과 같은 방식으로 작동하지 않습니다. 나는 자바 경험이있는 사람이이 일을 도울 수있을 것이라고 생각했다. – clinomaniac

답변

0

당신이 명령 줄 SSH를 사용하여 연결, 당신의 "기본 명령은"다음 bash.bashrc 가져 파일.

JSch를 사용하여 연결할 때 열리는 Channel 유형이 연결에 필요한 작업을 결정합니다. JSch의 작동 방식에 대한 이해에서 JSch가 SSH 세션을 열 때 bash을 열지 않을 가능성이 있습니다.

일반적으로, ~/.ssh/environment을 사용하여 .bashrc 대신 PATH을 설정하고 SSH 데몬이이를 허용하도록 설정 한 경우 사용해보십시오. SSH가 셸을 포함한 모든 명령을 실행하기 전에 항상 가져 오기되므로 PATH을 설정하는 것이 더 안정적입니다.

this Unix StackExchange post.bashrc, PATH 및 SSH에 대한 자세한 정보는 내 대답의 몇 가지 대안을 참조하십시오.