Programing

TeamCity가 관리자 암호를 잊어 버린 경우-어디에서 확인해야합니까?

crosscheck 2020. 11. 14. 09:55
반응형

TeamCity가 관리자 암호를 잊어 버린 경우-어디에서 확인해야합니까?


JetBrain의 TeamCity 관리자 비밀번호를 복구 / 재설정해야합니다 .

서버에 대한 전체 RDP 액세스 권한이 있으므로 문제가 없습니다. 사용한 지 불과 2 개월이 지났기 때문에 이제 로그인을 잊어 버렸습니다. 평소 로그인이 작동하지 않습니다.

현재 데이터베이스없이 설정되어 있으므로 사용자 이름이 어딘가에 파일에 있기를 바랐지만 지금까지는 찾을 수 없었습니다.


작동하지 않는 경우 http://sebastienlachance.com/post/Resetting-TeamCity-Password.aspx를 참조 하십시오 .

명령 프롬프트를 열고 \ webapps \ ROOT \ WEB-INF \ lib 폴더로 이동합니다. 이제 다음을 입력하십시오.

..\..\..\..\jre\bin\java.exe -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword username newpassword

TeamCity 8에서 슈퍼 유저로 로그인하여 비밀번호를 변경할 수 있습니다. 빈 사용자 이름과 logs \ teamcity-server.log 파일에있는 "슈퍼 사용자 인증 토큰"의 마지막 항목을 암호로 사용하기 만하면됩니다.

자세한 내용은 다음을 참조하십시오.

  • TeamCity 8- http: //confluence.jetbrains.com/display/TCD8/Super+User
  • TeamCity 9- http: //confluence.jetbrains.com/display/TCD9/Super+User
  • TeamCity 10- https: //confluence.jetbrains.com/display/TCD10/Super+User

TeamCity 6.5.4의 경우

[TeamCity 설치 폴더] \ webapps \ ROOT \ WEB-INF \ lib의 명령 프롬프트에서 :

..\..\..\..\jre\bin\java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin NewPassword

제 경우에는 사용자 이름이 'admin'이었습니다 (설치 중에 설정 한 것 같지만 확실하지 않습니다).

TeamCity 인수에 대한 경로를 생략했으며 올바른 경로를 사용하기에 충분히 똑똑합니다 (내는 c : \ users \ administrator.BuildServer).

TeamCity에 대한 (잘못된) 경로를 인수로 제공했을 때 다음 메시지를 받았습니다.

Using TeamCity configuration directory path: c:/TeamCity/.BuildServer
Exception in thread "main" java.sql.SQLException: Table not found in statement [UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
    at org.hsqldb.jdbc.Util.throwError(Util.java:58)
    at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.java:1833)
    at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:580)
    at ChangePassword.main(ChangePassword.java:14)

이것이 다른 사람들에게도 혼란 스러울 경우.


TeamCity 데이터 디렉터리 ( $/.BuildServer기본 디렉터리)를 제거하여 TeamCity 설치를 재설정 할 수 있습니다.


다음을 시도하십시오.

먼저 TeamCity 서비스를 중지합니다 (설치된 경우 빌드 에이전트도 중지됨). 다음으로 콘솔을 열고 Java 디렉토리로 이동하여 거기에서 다음 명령을 실행하십시오.

java.exe -cp server.jar; hsqldb.jar ChangePassword USERNAME PASSWORD "PATH_TO_YOUR_TEAMCITY_INSTALLATION".BuildServer

v5 EAP로이 고통을 겪어야했습니다.

다음을 실행하여 비밀번호를 성공적으로 재설정했습니다.

C:\TeamCity\webapps\ROOT\WEB-INF\lib>..\..\..\..\jre\bin\java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password c:\TeamCity\.BuildServer

C : \ TeamCity를 설치 위치로 대체해야하지만.


다른 사람에게 도움이되는 경우 내 서버에 TeamCity를 설치 한 사람은 빌드 디렉토리를 C : \ TeamCity가 아닌 관리자 프로필 아래에 배치했습니다.


특히 Windows의 Tomcat에서 실행되는 TeamCity의 경우 C : \ ProgramData \ JetBrains \ TeamCity입니다.

마지막 매개 변수로 지정된 디렉토리는 데이터 디렉토리 여야합니다 (/logs/teamcity-server.log에서 찾을 수 있음).

이 정보가 정확하지 않으면 '테이블을 찾을 수 없음'오류가 표시됩니다.

TeamCity를 실행중인 경우 '데이터베이스가 이미 사용 중입니다'오류가 표시됩니다.

/logs/teamcity-server.log를 검색하여 관리자, 관리자 또는 다른 관리자 사용자 이름을 만들 었는지 확인할 수도 있습니다.


내가 방금 한 것처럼 원래 답변이 있은 지 몇 년 후에이 기사에 도착할 수있는 모든 사람을 위해 내장 된 슈퍼 사용자 계정이 있으며 팀 시티가 시작될 때마다 암호가 다시 생성되고 암호가 로그에 있습니다. 이 수퍼 유저를 사용하여 로그인하고 비밀번호를 재설정 할 수 있습니다. 아주 쉽습니다.

https://confluence.jetbrains.com/display/TCD9/Super+User


TeamCity는 항상 데이터베이스를 사용합니다. 명시 적으로 구성하지 않은 경우 HSQLDB 데이터베이스를 사용하여 내부적으로 데이터를 저장합니다 .

외부 데이터베이스를 사용할 때 사용자 정보는 해당 데이터베이스에 저장되므로 귀하의 경우 사용자 정보가 HSQLDB 시스템에 저장 될 가능성이 높습니다.

데이터베이스를 사용하여 시스템에 액세스 할 수 있지만 먼저 백업을 수행하는 것이 좋습니다.

두 번째 제안-JetBrains의 지원 담당자에게 이메일을 보내십시오. 제 직장이 TeamCity Enterprise 라이선스를 사용하기 전에도 그들의 지원은 훌륭했습니다. 빠르고 정확하며 도움이되었습니다.


MySQL을 사용하는 TeamCity 5 (아마도 다른 버전과 RDBM도 있지만 테스트되지 않음)를 사용하면 SQL을 통해 직접 비밀번호를 업데이트 할 수 있습니다.

mysql> update users set password = md5("mypass123") where username = "bob";

그럼에도 불구하고, 그렇게하지 않을 타당한 이유가 없다면 다른 사람들이 이미 언급 한 CLI 버전을 고수 할 것입니다.


첫 번째 요점은 로그인 화면에 사용자 이름 'TCAdmin'이 이미 입력되어있는 경우 'administrator'여야합니다. TCAdmin은 기본 버전 5 관리자 사용자의 전체 이름입니다. 관리자로 변경 한 다음 암호를 사용하여 문제가 해결되었다고 생각했습니다.

For resetting... In case it helps someone else on Windows XP on version 5 of TeamCity, my .BuildServer config info was also under my current logged in user's documents and settings folder. Also I was tripped up by a space in the list of jar files in Sebastien's good answer above.

So I changed to this directory in a command prompt:

 c:\teamcity\webapps\ROOT\WEB-INF\lib 

and then this command line (to set password: Password1) worked for me:

C:\TeamCity\webapps\ROOT\WEB-INF\lib>..\..\..\..\jre\bin\java.exe -cp server.jar;commonapi.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword administrator Password1

Which gave output:

Using TeamCity configuration directory path: C:/Documents and Settings/tamw/.BuildServer 
Password changed successfuly

  1. Stop teamcity
  2. You should pass path to your buildserver e.g. if you installed build server to dir "c:\.BuildServer"

........\jre\bin\java.exe -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword username newpassword c:\.BuildServer


Here's what worked for me.

Shut down server services

> cd c:\TeamCity\webapps\ROOT\WEB-INF\lib>

then

> ..\..\..\..\jre\bin\java.exe -cp server.jar ;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password1 C:\ProgramData\JetBrains\TeamCity\

Without the path at the end, it would fail with:

Exception in thread "main" java.sql.SQLException: Table not found in statement [
UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
        at org.hsqldb.jdbc.Util.throwError(Util.java:58)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.ja
va:1833)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:5
80)
        at ChangePassword.main(ChangePassword.java:14)

We are using Teamcity 7 with MS SQL Server as the RDBMS.

To reset your password you can use the following query:

UPDATE users SET password = LOWER(SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('md5','your_new_password')),3,32))
 where username = "your_user_name";

To change user password:

Shutdown server

Switch to the /webapps/ROOT/WEB-INF/lib directory

Invoke the following command:

Windows platform: java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword

Unix platform: java -cp server.jar:common-api.jar:commons-codec-1.3.jar:util.jar:hsqldb.jar ChangePassword

You can skip the option, if you are using default path for TeamCity data files: /.BuildServer

[Ref: http://confluence.jetbrains.com/display/TCD7/Changing+user+password+with+default+authentication+scheme]


Alternatively, You could use the TeamCity Server Log and retrieve the Super User token.

Using the token, go to the URL : http://(server):(port)/login.html?super=1

ie: http://localhost:92/login.html?super=1

Once you logged in, you could always create a new user or reset the password for the account in question.


Super user direct URL :

http://servername:port/login.html?super=1

Open TeamCity log folder (Example C: drive: C:\TeamCity\logs) : teamcity-server.log, find the key: “Super user authentication”

[2019-03-04 12:14:30,770]   INFO -   jetbrains.buildServer.SERVER - Super user authentication token: `8347518935696887114` (use empty username with the token as the password to access the server)

I passed in the same situation and did login with super user, follow steps below:

1 - Get Token in the "teamcity-server.log" in the path "XX:\TeamCity\logs";

2 - Access and login using token at url: "/login.html?super=1";

More about it:

https://confluence.jetbrains.com/display/TCD18/Super+User

참고URL : https://stackoverflow.com/questions/506115/teamcity-forgotten-admin-password-where-to-look

반응형