gradle에서 원격접속 키파일 포멧 PEM 변경

gradle에서 원격으로 접속하기 위해 아래와 같이 ssh정보를 작성함

  • identity = file(‘/Users/user/.ssh/google_rsb’) 이부분에서 자꾸오류가 났었는데 키파일의 포멧이 맞지 않아서였음
  • google_compute_engine 의 키파일을 복사해 google_rsb 만들고 포멧을 PEM으로 변경해줌
war {
	    archiveName('aml.war')
	}

remotes {
	was1 {
			role('was')
			host = '34.64.***.**'
			user = 'user'
			port = 22
			identity = file('/Users/user/.ssh/google_rsb') //키파일 위치
			knownHosts = allowAnyHosts
		}
	}

 task deploy(dependsOn: war) {
        doLast {
            ssh.runInOrder {
                session(remotes.was1) {
                    put from: war.archivePath, into: "."
                    execute 'mv aml.war /usr/local/tomcat8-scheduler/webapps/aml/aml.war'
                    execute '/usr/local/tomcat8-scheduler/bin/shutdown.sh'
                    execute '/usr/local/tomcat8-scheduler/bin/startup.sh'
                }
            }
        }
    }

아래를 참고함

이것은 jsch의 문제입니다. 이것이 jsch 0.1.55에서 수정되었는지는 모르겠지만, 그렇지 않을 것 같지만 누군가 수정해 주었으면 합니다!

최신 버전의 OpenSSH(7.8 이상)는 기본적으로 다음으로 시작하는 새로운 OpenSSH 형식으로 키를 생성합니다.

—-BEGIN OPENSSH 개인 키—–

JSch는 이 키 형식을 지원하지 않습니다.

ssh-keygen을 사용하여 키를 클래식 OpenSSH 형식으로 변환할 수 있습니다.

ssh-keygen -p -f file -m pem -P passphrase -N passphrase(키가 암호로 암호화되지 않은 경우 암호 대신 “” 사용)

Windows 사용자의 경우: ssh-keygen.exe는 이제 Windows 10에 내장되어 있습니다. 또한 이전 버전의 Windows용 Microsoft Win32-OpenSSH 프로젝트에서 다운로드할 수 있습니다.

Windows에서는 PuTTYgen(PuTTY 패키지에서)을 사용할 수도 있습니다.

PuTTYgen 시작키 로드변환 > OpenSSH 키 내보내기로 이동합니다.RSA 키의 경우 클래식 형식을 사용합니다.ssh-keygen을 사용하여 새 키를 생성하는 경우 -m PEM을 추가하여 클래식 형식으로 새 키를 생성합니다.

ssh-keygen -m PEM

키파일 포멧 변경

  • 내 경우 비번은 설정하지 않음 (비운채로 엔터치면됨)
ssh-keygen -p -f google_rsb -m pem

참고

https://github.com/int128/gradle-ssh-plugin/issues/361